收藏 分享(赏)

第7章字符数组.ppt

上传人:mcady 文档编号:10201203 上传时间:2019-10-18 格式:PPT 页数:30 大小:1.08MB
下载 相关 举报
第7章字符数组.ppt_第1页
第1页 / 共30页
第7章字符数组.ppt_第2页
第2页 / 共30页
第7章字符数组.ppt_第3页
第3页 / 共30页
第7章字符数组.ppt_第4页
第4页 / 共30页
第7章字符数组.ppt_第5页
第5页 / 共30页
点击查看更多>>
资源描述

1、7.3 字符数组 一、 字符数组的定义 二、 字符数组的初始化 三、 字符数组的输入与输出 四、字符串处理函数 一、 字符数组的定义 字符数组 :用来存放 字符型数据 的 数组 。 格式: char 数组名 常量表达式 , ; char 数组名 常量表达式 1常量表达式 2, 例: char a10, b30; char s1020, h20100; 注意 : 字符数组的定义、引用遵循 “数组”的规定。 二、 字符数组的初始化 1)逐个字符赋给数组中的各元素: 例 char s17=s,t,r,i,n,g,!; char s2 =s,t,r,i,n,g,!; 1、一维字符数组初始化 例 :ch

2、ar s310=C,h,i,n,a; C h i n a 0 0 0 0 0 s t r i n g ! 例 : char s48=“string!“; 或 char s48=“string!“; 或 char s4=“string!“; 等价于 :char s48=s,t,r,i,n,g,!,0; 2)用字符串常量初始化数组中的各元素 : s t r i n g ! 0 在字符数组中,并不要求它最后的一个字符为 “0“ ,也可以没有 “0“。 例: char s7=“String! “; 也是合法的 字符串在实际存储时,是用 字符数组 存储的,系统会自动的在其尾部添加一个结束标志 0。 0代

3、表 ASCII码为 0的字符 S t r i n g ! 2、二维字符数组初始化 二维字符数组的初始化,可以采用逐个字符式或者字符串常量的方式 例: char name26= J,o,h,n,0, M,a,r,r,y,0 ; char name26=“John“,“Marry“; char name26=“ John“, “Marry“; 注意 : 二维字符数组可以看做是包含多个字符串的一维数组 J o h n 0 0 M a r r y 0 三、 字符数组的输入与输出 1.利用格式符 %c 逐个输入、输出字符: void main() char str10; int i; for ( i=0

4、; i void main( ) char string80; printf(“Input a string:“); gets(string); puts(string); 输入 : How are you? 输出 : How are you ? H o w a r e y o u ? 0 puts( )函数一次输出一个字符串,并自动换行。 printf( )函数可以同时输出多个字符串,并且能灵活控制是否换行。 gets()函数可以接收包含空格、 tab的字符串。 scanf()不能接收空格 四、字符串处理函数 C语言提供了很多字符串操作函数,其对应的头文件为 1 测字符串长度函数 strle

5、n 格式: strlen(字符数组名或字符串常量 ) 作用:计算字符串 (以 0结束)的 有效长度 , 它的返回值是字符串中字符的个数 ( 不包含 0 )。 例: char str12=“computer“; printf(“%d “, strlen(str); printf(“%d“, strlen(“computer“); 输出 : 8 8 c o m p u t e r 0 0 0 0 str for(i=0;str1i!=0;i+) ; i的值等价于 strlen(str1) 例: 函数 strlen( )的使用。 #include #include void main() int i

6、; char str120; gets(str1); printf(“%s : %dn“,str1,strlen(str1); 输入: Good luck 输出 : Good luck: 9 2 字符串拷贝函数 strcpy 格式: strcpy(字符数组 1,字符串 2) 作用:将字符串 2复制到字符数组 1中。 注意: ( 1) 字符数组 1必须足够大,以便容纳字符串 2的内容。 ( 2) 字符串 2可以是 字符数组名 或者 字符串常量 。当字符串 2为字符数组名时,只复制第一个 0前面的内容(含 0 ),其后内容不复制。 ( 3) 不能使用赋值语句为一个字符数组赋值 例 char str

7、120,str220; str1= “Hello! “; () str2=str1; () strcpy(str1, “hello“); strcpy(str2,str1); 例: 函数 strcpy( )的使用。 #include main( ) int i; char str120,str2 =“Good luck“; strcpy(str1,str2); printf(“str1: %sn str2 : %sn“,str1,str2); 输出 : str1:Good luck str2:Good luck for (i=0;str2i!=0;i+) str1i=str2i; str1i=

8、0; 3字符串连接函数 strcat 引用形式: strcat(字符数组 1,字符串 2) 作用:将字符串 2的内容复制连接在字符数组 1的后面,其返回值为字符数组 1的地址。 注意: ( 1)字符数组 1只能是 字符数组名 ,并且必须足够大,以便可以继续容纳字符串 2的内容。 ( 2)连接后字符数组 1的 0将被字符串 2覆盖,连接后生成的新的字符串的最后保留一个 0 。 #include void main( ) char str112=“Good “; char str2 =“luck! “; strcat(str1,str2); printf(“%s“,str1); 例: 函数 str

9、cat( )的使用。 其状态如下: 输出 : Good luck! str1 str2 G o o d 0 0 0 0 0 0 0 l u c k ! 0 G o o d l u c k ! 0 0 str1 4字符串比较函数 strcmp 格式: strcmp(字符串 1,字符串 2) 功能:比较两个字符串 比较规则:对两串从左向右逐个字符比较( ASCII码), 直到遇到不同字符或 0为止 返 回 值:返回 int型整数, a. 若字符串 1 字符串 2, 返回正整数 0 c. 若字符串 1 = 字符串 2, 返回零 =0 说明: 字符串比较不能用“ =” 、“ 0 r #include

10、void main( ) char username10, name10=“zhangsan“; gets( username ); if ( strcmp(username,name)=0 ) printf(“welcome !n“); else printf(“ Username are wrong !n“); puts( username ); 例 7.8 输入一行字符,统计其中有多少个单词,单词之间用空 格分隔。 当前字符 =空格 是 否 未出现新单词,使 word=0,num不累加 前一字符为空格 (word=0),新单词出现 , word=1,num加 1 前一字符为非空格 (wo

11、rd=1),未出现新单词 ,num不变 num: 统计单词个数 word:作为判别是否是单词的标志,取值为 0或 1 char string:存储一行字符 输入一字符串给 string i=0 num=0 word=0 当 (c=stringi)!=0) c=空格 真 真 假 假 word=0 word=1 num=num+1 i=i+1 输出: num word=0 #include void main( ) char string81; int i,num=0,word=0; char c; gets(string); for (i=0;(c=stringi)!=0;i+) if (c=

12、= ) word=0; else if (word= =0) word=1; num+; printf(“There are %d words in the linen“,num); 例 7.9有三个字符串 (长度不超过 20),要求找出其中最大者。str0 str1 str2 string 大 大 H o w 0 H e l l o 0 H i g h 0 str0 str1 str2 #include #include void main( ) char string20,str320; int i; for(i=0;i0) strcpy(string,str0); else strcpy(string,str1); if (strcmp(str2,string)0) strcpy(string,str2); printf(“nthe largest string is:n%sn“,string); 作业 书面作业:教材 P152 -153 : 7.10 习题册第五单元:四、 13, 15 上机作业:教材 P152 -153 : 7.5, 7.6, 7.13 习题册第五单元:四、 12

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报