第8章字符与字符串g.ppt

上传人:sccc 文档编号:4965749 上传时间:2023-05-26 格式:PPT 页数:18 大小:1.44MB
返回 下载 相关 举报
第8章字符与字符串g.ppt_第1页
第1页 / 共18页
第8章字符与字符串g.ppt_第2页
第2页 / 共18页
第8章字符与字符串g.ppt_第3页
第3页 / 共18页
第8章字符与字符串g.ppt_第4页
第4页 / 共18页
第8章字符与字符串g.ppt_第5页
第5页 / 共18页
点击查看更多>>
资源描述

《第8章字符与字符串g.ppt》由会员分享,可在线阅读,更多相关《第8章字符与字符串g.ppt(18页珍藏版)》请在三一办公上搜索。

1、第 8 章 字符与字符串,指针与字符串字符串表示形式用字符数组实现,例 main()char string=“I love China!”;printf(“%sn”,string);printf(“%sn”,string+7);,用字符指针实现,例 main()char*string=“I love China!”;printf(“%sn”,string);string+=7;while(*string)putchar(string0);string+;,字符指针初始化:把字符串首地址赋给string char*string;string=“I love China!”;,*string!=0

2、,字符指针变量与字符数组char*cp;与 char str20;str由若干元素组成,每个元素放一个字符;而cp中存放字符串首地址 char str20;str=“I love China!”;()char*cp;cp=“I love China!”;()str是地址常量;cp是地址变量cp接受键入字符串时,必须先开辟存储空间,例 char str10;scanf(“%s”,str);()而 char*cp;scanf(“%s”,cp);(),改为:char*cp,str10;cp=str;scanf(“%s”,cp);(),字符串与数组关系字符串用一维字符数组存放字符数组具有一维数组的所有

3、特点数组名是指向数组首地址的地址常量数组元素的引用方法可用指针法和下标法数组名作函数参数是地址传递等区别存储格式:字符串结束标志赋值方式与初始化输入输出方式:%s%c,char 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;(),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)

4、;printf(“%s”,str);gets(str);puts(str);,字符指针:char*p;p=“I am a student.”;定义字符数组时,在编译时为数组分配内存。而定义一个指向字符的指针变量,则只分配一个存放指针变量的内存,指针变量“必须初始化后才能使用”。char str10;scanf(“%s”,str);char*p;scanf(“%s”,p);,char*p;p=(char*)malloc(20);scanf(“%s”,p);free(p);,stdlib.h,1.字符串拷贝函数strcpy()a)char*strcpy(char*s1,char*s2);功能:将s

5、2所指向的字符串复制到s1所指向的字符数组中,然后返回s1的地址值。eg.char*strcpy(*s1,*s2)char*s1,*s2;char*p,*q;p=s1;q=s2;while(*p+=*q+);return s1;,2.字符串连接函数strcat()a)char*strcat(char*s1,char*s2);功能:将s2字符串添加到s1字符串的后面,然后返回s1的地址值。eg.char*strcat(*s1,*s2)char*s1,*s2;char*p=s1;while(*p!=0)p+;while(*p+=*s2+);return s1;,3.字符串比较函数strcmp()a

6、)int strcmp(char*s1,char*s2);功能:比较两个字符串大小.返回值为0,则串1=串2.返回值为正数,则串1串2.返回值为负数,则串1串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 B)abcABz C)ABabcz D)xy

7、cdBCD,函数库为ctype.hint isalpha(int ch)若ch是字母(A-Z,a-z)返回非0值,否则返回0int isalnum(int ch)若ch是字母(A-Z,a-z)或数字(0-9)返回非0值,否则返回0int isascii(int ch)若ch是字符(ASCII码中的0-127)返回非0值,否则返回0int iscntrl(int ch)若ch是作废字符(0 x7F)或普通控制字符(0 x00-0 x1F)返回非0值,否则返回0int isdigit(int ch)若ch是数字(0-9)返回非0值,否则返回0int isgraph(int ch)若ch是可打印字符

8、(不含空格)(0 x21-0 x7E)返回非0值,否则返回0int islower(int ch)若ch是小写字母(a-z)返回非0值,否则返回0int isprint(int ch)若ch是可打印字符(含空格)(0 x20-0 x7E)返回非0值,否则返回0int ispunct(int ch)若ch是标点字符(0 x00-0 x1F)返回非0值,否则返回0int isspace(int ch)若ch是空格(),水平制表符(t),回车符(r),走纸换行(f),垂直制表符(v),换行符(n)返回非0值,否则返回0int isupper(int ch)若ch是大写字母(A-Z)返回非0值,否则返

9、回0int isxdigit(int ch)若ch是16进制数(0-9,A-F,a-f)返回非0值,否则返回0int tolower(int ch)若ch是大写字母(A-Z)返回相应的小写字母(a-z)int toupper(int ch)若ch是小写字母(a-z)返回相应的大写字母(A-Z),函数库为stdlib.hdouble atof(char*nptr)将字符串nptr转换成浮点数并返回这个浮点数int atoi(char*nptr)将字符串nptr转换成整数并返回这个整数long atol(char*nptr)将字符串nptr转换成长整数并返回这个整数char*ultoa(unsig

10、ned long value,char*string,int radix)将无符号整型数value转换成字符串并返回该字符串,radix为转换时所用基数char*ltoa(long value,char*string,int radix)将长整型数value转换成字符串并返回该字符串,radix为转换时所用基数char*itoa(int value,char*string,int radix)将整数value转换成字符串存入string,radix为转换时所用基数int system(char*command)将MSDOS命令command传递给DOS执行,str字符串操作函数char stp

11、cpy(char*dest,const char*src)将字符串src复制到destchar strcat(char*dest,const char*src)将字符串src添加到dest末尾char strchr(const char*s,int c)检索并返回字符c在字符串s中第一次出现的位置int strcmp(const char*s1,const char*s2)比较字符串s1与s2的大小,并返回s1-s2char strcpy(char*dest,const char*src)将字符串src复制到des,例:建立给定范围的子目录#include stdio.h#include st

12、dlib.h#include string.hmain()char s110,s210,s20;int beg,end,i;puts(begin:);gets(s1);puts(end:);gets(s2);beg=atol(s1);end=atol(s2);for(i=beg;i=end;i+)strcpy(s,md);ltoa(i,s1,10);strcat(s,s1);system(s);,/*编程题 请编一个函数int fun(*char ss),它的功能是:把ss字 符串中的字符按逆序存放。例如:若输入字符串为ABCDE FG,则逆置后的字符串为GFEDCBA。请勿改动主函数 mai

13、n和其它函数中的任何内容,仅在函数fun的花括号中填入 你编写的若干语句。*/#include#include#include int fun(char p)void main()char s80;printf(nPlease enter a string:);gets(s);fun(s);printf(nThe new string is:);puts(s);getch();,int fun(char p)int n,i,j;char c;n=strlen(p);for(i=n-1,j=0;ij;i-,j+)c=pi;pi=pj;pj=c;return n;,用递归法将字符串反向输出,#include void fun(char*s)char t;if(*s)t=*s+;fun(s);putchar(t);void main()char a=12345678;fun(a);,作业(p283)8.6 8.24 8.34,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 农业报告


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号