如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
1字符数组和字符串1.字符数组的定义和使用2.字符串和字符数组3.常用字符串处理函数4.字符数组应用举例1、字符数组的定义和使用字符数组就是数据类型为“char”的数组。定义字符数组的引用:【例10.5】从键盘输入一行字符,存放在字符数组中,然后逆序输出。字符串是作为一个整体对待的字符序列。在C语言中,没有字符串这种数据类型,因此可以将字符串存放在字符数组中。这是处理字符串的方法之一。请注意区分字符常量和字符串常量:字符常量是用单引号引起来的单个字符,字符串常量是用双引号引起来的字符序列,当然,字符序列可以为空,也可以是一个字符。①""表示空串,在内存中保存的是空字符'\0',占一个字节。②"A"表示含有一个大写字母A的字符串,在内存中保存的是字母A和空字符'\0',占两个字节。③'A'表示字母A,在内存中占一个字节。④"ABCDEF"表示含有6个字母的字符串,在内存中占7个字节。例chardiamond[][5]={{'.','.','*'},{'.','*','.','*'},{'*','.','.','.','*'},{'.','*','.','*'},{'.','.','*'}};例输出一个字符串字符串字符串及其结束标志无字符串变量,用字符数组处理字符串字符串结束标志:‘\0’字符串的输入输出逐个字符I/O:%c整个字符串I/O:%s例main(){chara[5]={‘H’,’e’,’l’,’l’,’o’};printf(“%s”,a);}main(){chara[]={'h','e','l','\0','l','o','\0'};printf("%s",a);}main(){inti;chara[5];scanf("%s",a);for(i=0;i<5;i++)printf("%d,",a[i]);}例字符串输入举例例若准备将字符串“Thisisastring.”记录下来,错误的输入语句为:(A)scanf(“%20s”,s);(B)for(k=0;k<17;k++)s[k]=getchar();(C)while((c=getchar())!=‘\n’)s[k++]=c;3.常用字符串处理函数包含在头文件string.h字符串连接函数strcat格式:strcat(字符数组1,字符数组2)功能:把字符数组2连到字符数组1后面返值:返回字符数组1的首地址说明:字符数组1必须足够大连接前,两串均以‘\0’结束;连接后,串1的‘\0’取消,新串最后加‘\0’例strcpy与strcat举例字符串比较函数strcmp格式:strcmp(字符串1,字符串2)功能:比较两个字符串比较规则:对两串从左向右逐个字符比较(ASCII码),直到遇到不同字符或‘\0’为止返值:返回int型整数,a.若字符串1<字符串2,返回负整数b.若字符串1>字符串2,返回正整数c.若字符串1==字符串2,返回零说明:字符串比较不能用“==”,必须用strcmp#include<string.h>#include<stdio.h>main(){charstr1[]=”Hello!",str2[]=”Howareyou?”,str[20];intlen1,len2,len3;len1=strlen(str1);len2=strlen(str2);if(strcmp(str1,str2)>0){strcpy(str,str1);strcat(str,str2);}elseif(strcmp(str1,str2)<0){strcpy(str,str2);strcat(str,str1);}elsestrcpy(str,str1);len3=strlen(str);puts(str);printf(”Len1=%d,Len2=%d,Len3=%d\n”,len1,len2,len3);}【例7.6】不使用字符串比较函数,比较两个字符串的大小。#include"stdio.h"main(){chara[20],b[20];intk,flag;printf("\npleaseinputthefirststring:");gets(a);/*输入第一个字符串*/printf("\npleaseinputthesecondstring:");gets(b);/*输入第二个字符串*/k=0;while(a[k]==b[k]&&a[k]!='\0'&&b[k]!='\0')k++;/*比较对应字符的大小*/flag=a[k]-b[k];printf("\nthefirststrin