预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共26页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

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