资源预览内容
第1页 / 共9页
第2页 / 共9页
第3页 / 共9页
第4页 / 共9页
第5页 / 共9页
第6页 / 共9页
第7页 / 共9页
第8页 / 共9页
第9页 / 共9页
亲,该文档总共9页全部预览完了,如果喜欢就下载吧!
资源描述
第十章 字符串C语言本身没有设置一种类型来定义字 符串变量,字符串的存储完全依赖于字 符数组,但字符数组又不等于是字符串 变量。10.1 用一维字符数组存放字符串l用字符型一维数组存放字符串,并规定以字 符0作为字符串结束标志。0占用存储空 间,但不记入串的实际长度。l字符串常量。如”hello”l字符串常量给出的是地址值。如:char *p, s10;s=“hello”; /错误p=“hello”; /正确l字符型数组与字符串的区别10.1.1 一维字符数组赋初值1、用一般数组赋初值方式给一维字符数组赋初值比较:char str10=a,b,c,0;char str =a,b,c,0; /实际是str4char str =a,b,c; /实际是str3,是字符 数组不是字符串 2、在赋初值时直接赋字符串常量char str10=“string!”; 或:char str10=“string!”; 但 char str7=“string!”; 可能破坏其他数据10.1.2 程序执行过程中赋初值1、不能用赋值语句给字符数组整体赋一串字符例:char str10;str=“abc”; /错误 再如:char str110=“abc”,str210;str2=str1; /错误 2、给数组元素逐个赋字符值,最后人为加0 例:char str10; int i;for(i=0;i9;i+) scanf(“%c”,stri=0;10.2 使指针指向一个字符串1、通过赋初值的方式使指针指向一个字符 串。如 char *ps1=“form one”; 2、通过赋值运算使指针指向一个字符串:char *ps1; ps1=“from one”; 3、用字符数组作为字符串和用指针指向的 一个字符串之间的区别。(字符数组是 指针常量)10.3 字符串的输入和输出l输入输出字符串的必要条件: 1)字符串输出时,输出项既可以是字符串或 字符数组名,也可以是已指向字符串的字 符指针变量。 2)字符串输入时,输入项可以时字符数组名 ,也可以是字符指针。1、用%s输入/输出 例:char str10;scanf(“%s”,str); /不需要 2、用gets()/puts()输入/输出 例:char str10;gets(str); /不要写成gets(str10); puts(str);10.4 字符串数组l字符串数组就是数组中的每个元素又都是一个 存放字符串的数组。l用一个二维字符数组存放多个字符串。l字符串数组也可以在定义的同时赋初值。见 P149图示 例:char 35=“a”, “bb”, “ccc”; 或: char 5=“a”, “bb”, “ccc”;l可以定义字符型指针数组并通过赋初值来构成 一个类似的字符串数组。 例:char *pa3=“a”, “bb”, “ccc”;10.5 用于处理字符串的函数1、字符串复制函数:strcpy(s1,s2) 2、字符串连接函数:strcat(s1,s2) 3、求字符串长度函数:strlen(s) 4、字符串比较函数:strcmp(s1,s2)10.6 程序举例例10.1 10.3
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号