




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、一、字符串的表示形式一、字符串的表示形式 1字符数组:字符数组:存放存放字符串字符串。 例:例:void main( ) static char string =I Love China!; printf(%sn,string); 2字符串指针变量:字符串指针变量:指向指向字符串字符串。 例:例:void main( ) char *string=I Love China!; printf(%sn,string); void main ( ) static char a=I am a boy.,b20; int i; for (i=0;*(a+i)!=0;i+) *(b+i)=*(a+i);
2、*(b+i)=0; printf (string a is :%sn,a); printf (string b is :%sn,b); 例例1: 将字符串将字符串a复制到字符串复制到字符串b中。中。方法方法1:void main ( ) char a =I am a boy., b20, *p1,*p2; p1=a;p2=b; for (;*p1!=0;p1+,p2+) *p2=*p1; *p2=0; printf (string a is :%sn,a); printf (string b is :%sn,b); 方法方法2:I a m a b o y . 0ap1p2Imab o y .
3、0char *p1=I am a boy.,*p2;二、字符串指针作函数参数二、字符串指针作函数参数void copy_string(char from,char to) int i=0; while(fromi!=0) toi=fromi;i+; toi=0; void main()static char a =I am a teacher.; static char b =You are a student.; printf(string_a=%snstring_b=%sn,a,b); copy_string(a,b); printf(string_a=%snstring_b=%sn,a,
4、b); 例例2:用函数调用实现字符串的复制。:用函数调用实现字符串的复制。方法方法1:问问: : 对字符数组对字符数组a a与与b b的长度有否限制的长度有否限制 ? ?方法方法2:void copy_string(char *from,char *to) for(;*from!=0;from+,to+) *to=*from; *to=0; I a m a t e a c h e r . 0 Y o u a r e a s t u d e n t . 0 void main( ) char *a=I am a teacher.; char *b=You are a student.; prin
5、tf(string_a=%snstring_b=%sn,a,b); copy_string(a,b); printf(string_a=%snstring_b=%sn,a,b); abfromtoIa mataech er . 0例例3: 有一个长度不大于有一个长度不大于40的字符串的字符串,已知其中总包已知其中总包含两个字符含两个字符A,求处于两个字符求处于两个字符A中间的字符个数中间的字符个数,及这些字符及这些字符. int sub(char *x,char *y) int i,n=0; for(i=0;*(x+i)!=0;i+) if(*(x+i)=A) break; do i+; *(
6、y+n)=*(x+i); n+;while(*(x+i+1)!=A); *(y+n)=0; return(n); void main( ) char a40,b40; int l; int sub(char *x,char *y); gets(a); l=sub(a,b); printf(l=%dn,l); printf(%sn,b); char *a=I love china; char *a ; a=I love china ;三、字符指针变量与字符数组的区别三、字符指针变量与字符数组的区别字符指针变量中存放的是字符指针变量中存放的是地址地址,绝决不是将字符,绝决不是将字符串放到字符指针变
7、量中。串放到字符指针变量中。赋初值的方式:对数组可以在变量定义时整体赋赋初值的方式:对数组可以在变量定义时整体赋初值,但不能在赋值语句中整体赋值。初值,但不能在赋值语句中整体赋值。 char str14=“I love China!;char str14;str =“I love China!”;3指针变量可以指向一个字符型数据,但如果未指针变量可以指向一个字符型数据,但如果未 对它赋以一个地址值,则它并未具体指向哪一对它赋以一个地址值,则它并未具体指向哪一 个字符数据。个字符数据。 如如: char *a; scanf(%s,a); 是错误的是错误的4指针变量的值是可以改变的,而数组名所指的
8、指针变量的值是可以改变的,而数组名所指的 地址是固定的。地址是固定的。 如:如: main( ) char *a=I love China!; a=a+7; printf(%s, a); 运行结果:运行结果:China!5用指针变量指向一个格式字符串。用指针变量指向一个格式字符串。如:如: void main( ) static char a =I love China!; a=a+7; printf(%s, a); 是错误的!是错误的!char *format; format=a=%d,b=%fn; printf(format,a,b);printf(a=%d,b=%fn,a,b);例例4:
9、 4: 有两个字符串有两个字符串str1,str2, str1,str2, 编程序将编程序将str1,str2str1,str2中对应字符较大的放到数组中对应字符较大的放到数组str3str3中中. . void main() char *str1=Chinese,*str2=India,str340; ccc(str1,str2,str3); puts(str3); str1str2C h i n e s e 0 I n d i a 0str3 void ccc(char *s1,char *s2,char *s3) int i; for(i=0;*(s1+i)!=0&*(s2+i)!=0;i+) *(s3+i)=*(s1+i)*(s2+i)?*(s1+i):*(s2+i); if(*(s1+i)=0) while(*(s2+i)!=0) *(s3+i)=*(s2+i);i+; if(*(s2+i)=0) while(*(s1+i)!=0) *(s3+i)=*(s1+i);i+; *(s3+i)=0; C h i n e s e 0 I n d i a 0s1s2s3In in ese
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 安置期房买卖合同(标准版)
- 专业培训服务合同协议书要求
- 药厂生产管理培训课件
- 乡村社区特色种植推广合同
- 项目需求分解及风险管理清单模板
- 雨中风景300字(7篇)
- 建筑工程施工材料采购及质量保证协议
- 汉字文化学习课程
- 完璧归赵缩写150字(10篇)
- 诗词名句积累与应用教学设计
- 《小学开学第一课:学生守则、行为规范、班级班规》课件
- 幼儿园行政工作保密协议
- 环境监测课件
- 骨折内固定术术前宣教
- 冰雪运动行业营销策略方案
- 咖啡店成本及消耗一览
- 中职资料:第1讲 社会主义在中国的确立与探索+课件
- 新能源汽车空调检测与维修PPT完整全套教学课件
- DB32-T 4281-2022 江苏省建筑工程施工现场专业人员配备标准
- 职工安全健康权益保障制度
- 12j912-2常用设备用房
评论
0/150
提交评论