- 1、本文档共12页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第十章字符串ppt整理
第十章 字符串 C语言本身没有设置一种类型来定义字符串变量,字符串的存储完全依赖于字符数组,但字符数组又不等于是字符串变量。 10.1 用一维字符数组存放字符串 用字符型一维数组存放字符串,并规定以字符‘\0’作为字符串结束标志。‘\0’占用存储空间,但不记入串的实际长度。 字符串常量。如”hello” 字符串常量给出的是地址值。如: char *p, s[10]; s=“hello”; //错误 p=“hello”; //正确 字符型数组与字符串的区别 10.1.1 一维字符数组赋初值 1、用一般数组赋初值方式给一维字符数组赋初值 比较: char str[10]={‘a’,’b’,’c’,’\0’}; char str[ ]={‘a’,’b’,’c’,’\0’}; //实际是str[4] char str[ ]={‘a’,’b’,’c’}; //实际是str[3],是字符数组不是字符串 2、在赋初值时直接赋字符串常量 char str[10]={“string!”}; 或:char str[10]=“string!”; 但 char str[7]=“string!”; 可能破坏其他数据 10.1.2 程序执行过程中赋初值 1、不能用赋值语句给字符数组整体赋一串字符 例:char str[10]; str=“abc”; //错误 再如:char str1[10]=“abc”,str2[10]; str2=str1; //错误 2、给数组元素逐个赋字符值,最后人为加’\0’ 例:char str[10]; int i; for(i=0;i9;i++) scanf(“%c”,str[i]); str[i]=‘\0’; 10.2 使指针指向一个字符串 1、通过赋初值的方式使指针指向一个字符串。如 char *ps1=“form one”; 2、通过赋值运算使指针指向一个字符串: char *ps1; ps1=“from one”; 3、用字符数组作为字符串和用指针指向的一个字符串之间的区别。(字符数组是指针常量) 10.3 字符串的输入和输出 输入输出字符串的必要条件: 1)字符串输出时,输出项既可以是字符串或字符数组名,也可以是已指向字符串的字符指针变量。 2)字符串输入时,输入项可以时字符数组名,也可以是字符指针。 1、用%s输入/输出 例:char str[10]; scanf(“%s”,str); //不需要str,注意空间分配 printf(“%s”,str); 2、用gets()/puts()输入/输出 例:char str[10]; gets(str); //不要写成gets(str[10]); puts(str); 10.4 字符串数组 字符串数组就是数组中的每个元素又都是一个存放字符串的数组。 用一个二维字符数组存放多个字符串。 字符串数组也可以在定义的同时赋初值。见P149图示 例:char [3][5]={“a”, “bb”, “ccc”}; 或: char [ ][5]={“a”, “bb”, “ccc”}; 可以定义字符型指针数组并通过赋初值来构成一个类似的字符串数组。 例:char *pa[3]={“a”, “bb”, “ccc”}; 10.5 用于处理字符串的函数 1、字符串复制函数:strcpy(s1,s2) 2、字符串连接函数:strcat(s1,s2) 3、求字符串长度函数:strlen(s) 4、字符串比较函数:strcmp(s1,s2) * * 10.6 程序举例 *
文档评论(0)