第 8 章字符与字符串g.ppt
《第 8 章字符与字符串g.ppt》由会员分享,可在线阅读,更多相关《第 8 章字符与字符串g.ppt(18页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、第第 8 章章 字符与字符串字符与字符串 指针与字符串指针与字符串n字符串表示形式字符串表示形式n用字符数组实现用字符数组实现例例 main()char string=“I love China!”;printf(“%sn”,string);printf(“%sn”,string+7);IloveChistring0string1string2string3string4string5string6string7string8string9stringstring10string11string12string13n!a0n用字符指针实现用字符指针实现例例 main()char *string
2、=“I love China!”;printf(“%sn”,string);string+=7;while(*string)putchar(string0);string+;IloveChistringn!a0字符指针初始化字符指针初始化:把字符串首地址赋给把字符串首地址赋给stringstring char *string;string=“I love China!”;string*string!=0n字符指针变量与字符数组字符指针变量与字符数组char *cp;与与 char str20;nstr由若干元素组成,每个元素放一个字符;而由若干元素组成,每个元素放一个字符;而cp中存放中存放字
3、符串首地址字符串首地址n char str20;str=“I love China!”;()char *cp;cp=“I love China!”;()nstr是地址是地址常量常量;cp是地址变量是地址变量ncp接受键入字符串时接受键入字符串时,必须必须先开辟存储空间先开辟存储空间例例 char str10;scanf(“%s”,str);()而而 char *cp;scanf(“%s”,cp);()改为改为:char *cp,str10;cp=str;scanf(“%s”,cp);()字符串与数组关系字符串与数组关系n字符串用一维字符数组存放字符串用一维字符数组存放n字符数组具有一维数组的所
4、有特点字符数组具有一维数组的所有特点n数组名是指向数组首地址的地址常量数组名是指向数组首地址的地址常量n数组元素的引用方法可用指针法和下标法数组元素的引用方法可用指针法和下标法n数组名作函数参数是地址传递等数组名作函数参数是地址传递等n区别区别n存储格式:字符串结束标志存储格式:字符串结束标志n赋值方式与初始化赋值方式与初始化n输入输出方式:输入输出方式:%s%cchar str=“Hello!”;()char str=“Hello!”;()char str=H,e,l,l,o,!;()char *cp=“Hello”;()int a=1,2,3,4,5;()int *p=1,2,3,4,5;
5、()char str10,*cp;int a10,*p;str=“Hello”;()cp=“Hello!”;()a=1,2,3,4,5;()p=1,2,3,4,5;()scanf(“%s”,str);printf(“%s”,str);gets(str);puts(str);n字符指针:字符指针:char*p;p=“I am a student.”;n定义字符数组时,在编译时为数组分配内存。定义字符数组时,在编译时为数组分配内存。而定义一个指向字符的指针变量,则只分配一而定义一个指向字符的指针变量,则只分配一个存放指针变量的内存,指针变量个存放指针变量的内存,指针变量“必须初始必须初始化后才能使
6、用化后才能使用”。char str10;scanf(“%s”,str);char*p;scanf(“%s”,p);char *p;p=(char*)malloc(20);scanf(“%s”,p);free(p);stdlib.h1.字符串拷贝函数字符串拷贝函数strcpy()a)char*strcpy(char*s1,char*s2);功能:功能:将将s2s2所指向的字符串复制到所指向的字符串复制到s1s1所指所指向的字符数组中,然后返回向的字符数组中,然后返回s1s1的地址值。的地址值。eg.char*strcpy(*s1,*s2)char *s1,*s2;char*p,*q;p=s1;q
7、=s2;while(*p+=*q+);return s1;2.字符串连接函数字符串连接函数strcat()a)char*strcat(char*s1,char*s2);功能:功能:将将s2s2字符串添加到字符串添加到s1s1字符串的后字符串的后面,然后返回面,然后返回s1s1的地址值。的地址值。eg.char*strcat(*s1,*s2)char *s1,*s2;char*p=s1;while(*p!=0)p+;while(*p+=*s2+);return s1;3.字符串比较函数字符串比较函数strcmp()a)int strcmp(char*s1,char*s2);功能:比较两个字符串大
8、小功能:比较两个字符串大小.返回值为返回值为0,0,则则串串1=1=串串2.2.返回值为正数返回值为正数,则串则串11串串2.2.返回值为负返回值为负数数,则串则串11串串2.2.eg.strcmp(char *s1,char*s2)while(*s1=*s2)if(*s1=0)return 0;s1+;s2+;return (*s1-*s2);(例例)下列程序的输出结果是下列程序的输出结果是 main()char *p1,*p2,str50=xyz;p1=abcd;p2=ABCD;strcpy(str+2,strcat(p1+2,p2+1);printf(%s,str);A)xyabcAB
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 字符与字符串g 字符 字符串
限制150内