专升本C语言课件C06数组.ppt_第1页
专升本C语言课件C06数组.ppt_第2页
专升本C语言课件C06数组.ppt_第3页
专升本C语言课件C06数组.ppt_第4页
专升本C语言课件C06数组.ppt_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

六、数组 6.3 字符串 字符数组:每一个元素都是字符 字符串:以0结束的字符数组。 在C语言中,用存放字符串的空 间的首地址来代表字符串。 下面的字符数组中哪些是字符串? (1) char s3=a,b,c; (2) char s3=“abc“; (3)char s=a,b,c; (4)char s=“abc“; (5)char s=a,b,c,0; (6)char s=a,b,c,0; (7)char s20=a,b,c; (8)char s20=“abc0cde0“; 不是 错误 不是 是 是 是 是 是 六、数组 6.3 字符串 下面两句完全等效,但前者简洁 : char s =“abcd“; char s =a,b,c,d,0; 下面两句等效,但前者节省空间 : char s =“abcd“; char s20=“abcd“; 注意: char s =“abcd“; 不能拆为 char s ; s=“abcd“; 六、数组 6.3 字符串 以下是常用的初始化方法: char s =“abcd“; char *p=“abcd“; 前者 给一段空间,大小由“abcd“决定 首地址是s 后者 同 char *p; p=“abcd“; 5021 5022 5023 5024 5025 5026 5027 5028 5029 5030 5031 5032 5033 5034 c a d b 5022 p 0 5021 5022 5023 5024 5025 5026 5027 5028 5029 5030 5031 5032 5033 5034 c a d b s 0 六、数组 6.3 字符串 判断以下语句的正确性: (1)char *s; s=“abcd“; (2)char *s=“abcd“; s2=f; (3)char s =“abcd“; s10=0; (4)char s10; s=“abcd“; (5)char *s ; s=“abcd“; (6)char s =“abcd“; *s=0; YES YES 溢出 NO NO YES 六、数组 6.3 字符串 下面对s的初始化是否正确? A) char s5 = “abc“; B) char s5 =a,b,c; C) char s5 = “; D) char s5=“abcdef“; YES YES YES NO 六、数组 6.3 字符串 对两个数组a和b进行如下初始化 char a= “ABCDEF“; char b=A,B,C,D,0,F; 则以下叙述正确的是_。 A) a与b数组完全相同 B) a与b长度相同 C ) a和b中存放字符串 D) a数组比b数组长度长 C D 六、数组 6.3 字符串 有以下程序 #include main() char *p=“abcde0fghjik0“; char u=“abc0“; printf(“%d,%d,%dn“,sizeof( p),strlen(p),sizeof(u); 输出结果是_。 2, 5,5 p仅仅是一个指针变量,它的 空间就用来存放一个地址 字符串常量存储时总是自动 加0 六、数组 6.3 字符串 字符串输出: 从第一个字符到第一个0 以下完全等效 printf(“%sn“,str); puts(str); while(si!=0) putchar(si); i+; putchar(n); char c5=a,b,0,c,0; printf (“%s“,c); ab 六、数组 6.3 字符串 字符串的输入 gets(str); scanf(“%s“,str); scanf与gets的区别 gets(s); 能读入完整的一行字符串 。 scanf(“%s”,s);读到空格、TAB、 回车即结束。 如输入Turbo C时, scanf读到s中只是Turbo, 而gets(s)可以读入完整的一行。 六、数组 6.3 字符串 gets(str); scanf(“%s“,str); 错误的理解:输入的内容放入str 中. 输入的字符串放入以str的值为首 地址的一段内存空间中。 字符串有多个字符,输入时要注 意: 存放的地方是明确的; 所有字符都能放得下。 如输入abc a b c 0 str 六、数组 6.3 字符串 判断以下语句的正确性: (1)char *s; gets(s); (2)char s ; gets(s); (3)char s10; gets(s); (4)char *s,x20; s=x; gets(s); 地址不定 没有空间 正确 正确 六、数组 6.3 字符数组与字符串 关于字符串的库函数: #include “string.h“ strcmp(s1,s2) strcpy(s1,s2) s1指向的空间要足够大 strlen(s) strcat(s1,s2); s1指向的空间要足够大 输入10个字符串,输出其中最长的 字符串和最大的字符串。 #include “stdio.h“ #include “string.h“ main() char s30,max30,lon30; gets(s); _ for(i=1;i0 strlen(s)strlen(lon) 六、数组 6.3 字符数组与字符串 指针的使用 p指向字符串的第一个字符,p+1 可以指向下一个字符 判断字符串未结束: *p!=0 *p!=0 *p 输入abcdef,输出_。 char s30,*x=s; int i=0; gets(s); while(*x+)i+; printf(“%dn“,i); 6 六、数组 6.3 字符数组与字符串 指针的使用 p指向字符串的第一个字符,p+1 可以指向下一个字符

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论