C_C++程序设计教程与上机实训 教学课件 ppt 作者 于文强 程立福 毛慧凤 第六章

上传人:E**** 文档编号:89423862 上传时间:2019-05-25 格式:PPT 页数:18 大小:106KB
返回 下载 相关 举报
C_C++程序设计教程与上机实训 教学课件 ppt 作者 于文强 程立福 毛慧凤 第六章_第1页
第1页 / 共18页
C_C++程序设计教程与上机实训 教学课件 ppt 作者 于文强 程立福 毛慧凤 第六章_第2页
第2页 / 共18页
C_C++程序设计教程与上机实训 教学课件 ppt 作者 于文强 程立福 毛慧凤 第六章_第3页
第3页 / 共18页
C_C++程序设计教程与上机实训 教学课件 ppt 作者 于文强 程立福 毛慧凤 第六章_第4页
第4页 / 共18页
C_C++程序设计教程与上机实训 教学课件 ppt 作者 于文强 程立福 毛慧凤 第六章_第5页
第5页 / 共18页
点击查看更多>>
资源描述

《C_C++程序设计教程与上机实训 教学课件 ppt 作者 于文强 程立福 毛慧凤 第六章》由会员分享,可在线阅读,更多相关《C_C++程序设计教程与上机实训 教学课件 ppt 作者 于文强 程立福 毛慧凤 第六章(18页珍藏版)》请在金锄头文库上搜索。

1、1,第6章 字符数组与字符串,2,6.1 字符数组,元素存放的是字符型数据的数组称为字符数组。字符数组的声明和数值型数组的声明一样。 例如: char mych20; /*mych为字符数组,包含20个元素*/ char mynum1520; /*定义mynum为1520的二维字符数组*/ 字符数组的初始化有定义时初始化和通过赋值语句初始化。,3,6.2 字符串变量,C语言的字符串变量与其他高级语言中的字符串变量不同,它并不是真正的字符串类型的变量,因为C语言中没有字符串类型的数据。C语言的字符串变量从形式讲就是字符数组。但是,字符数组与字符串又是不一样的,因为字符串是带有字符串结束符0的一组

2、字符,而字符数组则不一定要带0。而有了0标志后,在处理字符数据时,就不必再用数组的长度来控制对字符数组的操作,而是用0来判断字符串的结束位置,这是字符串变量与字符数组在操作上根本区别。 字符串变量需要字符串常量对其进行初始化。,4,6.3 字符串的输入输出,我们有两对字符串的输入输出的函数,一对是先前学过的printf()函数和scanf()函数,另一对是puts()函数和gets()函数。 (1)使用printf()函数输出字符串变量要使用转换字符序列%s (2)使用scanf()函数输入字符串给字符串变量使用转换字符序列%s (3)用puts()函数输出字符串 (4)gets()字符串输入

3、函数,5,6.4 字符串处理函数,(1)字符串拷贝函数strcpy() 功能:把一个字符串复制到另一个字符串中; 用法:stpcpy(字符串变量1,字符串2); 说明:它把字符串2的内容复制到字符串变量1中,其中字符串2既可以是字符串变量,也可以是字符串常量。 (2)字符串拼接函数strcat() 功能:把一个字符串连接到另一个字符串后面; 用法:strcat(字符串变量1,字符串2); 说明:它把字符串2的内容连接到字符串变量1中,其中字符串2既可以是字符串变量,也可以是字符串常量。,6,(3)字符串比较函数strcmp() 功能:比较两个字符串的大小; 用法:strcmp(字符串1, 字符

4、串2); 说明:它按ASCII码顺序比较字符串1和字符串2,并由函数返回值决定比较结果。其返回值的结果如下决定: 如果字符串1=字符串2,返回0; 如果字符串1字符串2,返回一正整数; 如果字符串1字符串2,返回一负整数。 其中字符串1和字符串2既可以是字符串变量也可是字符串常量。,7,(4)字符串比较函数stricmp() 功能:比较两个字符串的大小; 用法:strcmp(字符串1, 字符串2); 说明:它与前一个函数的区别是不分大小写比较字符串1和字符串2的大小,其中字符串1和字符串2既可以是字符串变量也可是字符串常量。 (5)将一个字符串中的所有字符都设为指定字符的函数strset()

5、功能:将一个字符串中的所有字符都设为指定字符; 用法:strcmp(字符串1, 字符1); 说明:它把字符串1中的所有字符都设置为字符1,其中字符串1是变量,字符1可以是一个变量,也可以是一个常量。,8,(6)字符串倒转函数strrev() 功能:把指定的字符串变量的内容倒转; 用法:strrev(字符串变量1); 说明:这个函数把字符串变量1中的内容倒转过来。 (7)将字符串中的小写字母转换为大写字母函数strupr() 功能:把指定字符串变量中的小写字母转换为大写字母; 用法:strupr(字符串变量1);,9,6.5 上机实训,实验目的: 字符串的处理在程序设计中有着广泛的应用,通过本实

6、训我们要求掌握一些常用的字符串处理,如字符串的连接、加密、排序、空格压缩等。 实验内容: 两字符串连接 字符串翻转 字符串加密 地名排序 空格的压缩,10,6.5.1 两字符串连接,把一个字符串连接到另一个字符串的后面,不使用strcat()函数。 编写程序代码如下: #include #include void main() int i,j; char str1100=“I like “,str220=“China for ever!“; printf(“Before Connection:“); printf(“str1=%s,str2=%sn“,str1,str2); for(i=0;s

7、tr1i!=0;i+); for(j=0;str2j!=0;j+) ,11,str1i+=str2j; str1i=0; printf(“After connection:str1=%s“,str1); 程序运行结果: Before Connection:str1=I like ,str2=China for ever! After connection:str1=I like China for ever!,12,6.5.2 字符串翻转,翻转一个字符串,不用函数strrev()。 编写程序代码如下: #include #include void main() char str140,temp

8、; int i,len; puts(“input string“); gets(str1); len=strlen(str1); for(i=0;ilen/2;i+) ,13,temp=str1i; str1i=str1len-i-1; str1len-i-1=temp; puts(“After reverse:“); puts(str1); 程序运行结果: input string I love China for ever! After reverse: !reve rof anihC evol I,14,6.5.3 字符串加密,输入一个字符串,对其中的英文字母加密,非英文字母不变。 编写

9、程序代码如下: #include #define CODE 3 void main() char str1100,str2100,temp; int i; puts(“Input a string“); gets(str1); for(i=0;str1i!=0;i+) if(str1i=A&str1i=a&str1i=z) ,15,temp=str1i+CODE; if(tempZ 程序运行结果: Input a string I love China! L oryh Fklqd!,16,6.5.4 地名排序,用二维数组存放地名,然后对它们进行排序(选择排序),并输出排序后的结果。 编写程序代

10、码如下: #include #include #define N 3 void main() char placeN30,temp30; int i,j,k; puts(“Please input place name:“); for(i=0;iN;i+) gets(placei); for(i=0;iN-1;i+) k=i; for(j=i+1;jN;j+) if(strcmp(placej,placek)0) k=j; if(k!=i) ,17,strcpy(temp,placei); strcpy(placei,placek); strcpy(placek,temp); puts(“af

11、ter sort“); for(i=0;iN;i+) puts(placei); 程序运行结果: Please input place name: guangzhou shanghai beijing after sort beijing guangzhou shanghai,18,6.5.5 空格的压缩,输入一个字符串,把其中相邻的两个或两个以上的空格压缩成一个空格。 编写程序代码如下: #include #include void main() char str100; int i; puts(“input string“); gets(str); for(i=1;istrlen(str)-1;i+) if(stri-1= 程序运行结果: I love China! I love China!,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号