第十章 字符串

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

scanf(“%s”,&st); ×

注意
1、数组名代表该字符数组的首地址。 2、scanf函数以回车或空格作为结束标志,输入的字符串中不能含有空格。 例如: scanf(“%s”,st) ; 输入How do you do?↙
则s 的内容为: How
第6章 数组
(2)使用函数gets( )输入字符
调用格式:gets(str); 函数功能:从键盘读入一个字符串到str中,并自动在末尾加字符串 结束标志符’\0’。 例5: char s[20]; gets(s); 输入How do you do?↙ 则s 的内容为: How do you do?
注意 gets函数只以回车作为输入结束。
第6章 数组
注: 1、字符数组1和2均可用字符串表示; 2、表示两个字符串相等
例:strcmp(str1,str2)==0

str1==str2
×
第6章 数组
6.字符长度函数 格式:strlen(字符数组); 功能:求字符串的实际长度即所含字符个数(不包括'\0')。 例10: char str[10]=“student”; int length,strl; length=strlen(str); (7) strl=strlen(“very good”); (9) 7.strlwr(字符串) 功能:将字符串中大写字母转化成小写字母。 8.strupr(字符串) 功能:将字符串中小写字母转化成大写字母。 注意 使用字符串处理函数,除了gets和puts函数,其他函数使用时必须有头文件 #include<string.h>
第6章 数组
二、 字符串的输入输出 1.字符串的输出方法 (1)用printf函数
格式符“%s”输出整个字符串或%c和循环语句逐个输出字符,直到 遇到第一个‘\0‟为止。
例1:char st[15]=“I am a boy!”; 结果:I am a boy!mb 例2:#include<stdio.h> main( ) { char str[20]={”How do you do ?”}; int k; printf(“%s”,str); for (k=0;str[k]!=’\0’;k++) printf(“%c”,str[k]); } 结果:How do you do ?How do you do ?
第6章 数组
4、字符串连接函数 格式:strcat(字符数组1,字符数组2); 功能:将字符数组2连接到字符数组1的后面,结果放到字符数组1中。 例8:char s1[14]=“I am a”; char s2[5]=“boy.”; strcat(s1,s2); 连接前:s1: I a m a \0 s2:
第6章 数组
例11 不使用strcat函数,将两个字符串连接起来。 #include<stdio.h> main( ) {char s1[80],s2[40]; int i=0,j=0; printf(“input string1:”); scanf(“%s”,s1); printf(“input string2:”); scanf(“%s”,s2); while(s1[i]!=‘\0’) i++; while(s2[j]!=‘\0’) 程序运行过程: s1[i++]=s2[j++]; s1[i]=‘\0’; input string1:abcd printf(“The new string is:%s”,s1); input string2:efg }
例6 字符串输入输出 #include<stdio.h> main() 思考 {char s[20],s1[20]; scanf(“%s”,s); printf(“%s\n”,s); scanf(“%s%s”,s,s1); printf(“s=%s,s1=%s\n”,s,s1); gets(s); puts(s); }
第8章 指针
例10:在输入的字符串中查找有无’k‟字符。
main( ) {char str[80],*ps; int i; ps=str; printf(“input a string:\n”); scanf(“%s”,ps); for(i=0;str[i]!=‟\0‟;i++) if(str[i]==‟k‟) {printf(“There is a ‟k‟ in the string\n”); break;} if(str[i]==‟\0‟) printf(“There is no „k‟ in the string\n”);}
Hello
注意
1、puts输出字符串后再输出一个换行符; 2、puts每次只能输出一个字符串,而printf可以输出几个。 例:printf("%s%s",str1,str2);
第6章 数组
2. 字符串的输入方法 (1)使用scanf函数输入字符串 例4:char st[15]; scanf(“%s”,st); √ char st[15]; int i; for(i=0;i<15;i++) scanf(“%c”,&st[i]);
用什么语句替换?
程序运行过程: How do you do?↙ How How do you do?↙ s=How,s1=do How do you do?↙ How do you do?
第6章 数组
三、字符串处理函数 1、puts(字符数组名) 2、gets(字符数组名) 注:puts函数和gets函数使用时应有头文件#include<stdio.h>。 3、字符串拷贝函数 格式:strcpy(字符数组1,字符数组2) 功能:将字符数组2中包含的字符串复制到字符数组1中。 例7: #include<string.h> main( ) {char str1[20],str2[ ]=“Hello World”; strcpy(str1,str2); puts(str1); } 注: 1、字符数组1必须定义得足够大; 2、字符数组1必须写成数组名,字符数组2可用字符串常量代替; 3、将字符串2后面的’\0‟一起拷贝到字符数组1中; 4、不能用字符串常量或字符数组直接给一个字符数组赋值。 例:str1=“Hello World”;或str1=str2; ×
第8章 指针
10.2 指针与字符串
字符串指针:指针变量里存放字符串首地址或首字符的地址。 形式: char *ps=“Hello World”;
Char *ps; ps=“Hello World”;
例9:输出字符串中第n个字符后的所有字符。 main( ) {char *ps=”This is a test string”; int n; printf(“n=”); scanf(“%d”,&n); ps=ps+n ; printf(“ %s\n “,ps) ; }
The new string is:abcdefg
例12 使用选择排序法将数组a中的10个整数按升序排列并输出。
#include<stdio.h> main() {int i,a[10],j,t; printf("input 10 numbers:\n"); for(i=0;i<10;i++) scanf("%d",&a[i]); for(i=0;i<9;i++) {for(j=i+1;j<10;j++) if(a[j]<a[i]) {t=a[j];a[j]=a[i];a[i]=t;}} for(i=0;i<10;i++) printf("%3d",a[i]); }
连接后:s1
b I o y a . m \0 a b o y . \0
注: 1、字符数组1必须足够大; 2、连接时将字符数组1后面的’\0’删除; 3、字符数组1和字符数组2均可用字符串常量表示。
第6章 数组
5.字符串比较函数 格式:strcmp(字符数组1,字符数组2); 功能:若字符串1=字符串2,则函数返回值为0; 若字符串1>字符串2,则函数返回值为正整数; 若字符串1<字符串2,则函数值返回为负整数。 例9 strcmp(str1,str2); strcmp(“China”,”Korea”);
s t u d e n t \0 \0 \0 s t u d e n t \0 t u d e n t
char ch[ ]={„s‟,‟t‟,‟u‟,‟d‟,‟e‟,‟n‟,‟t‟};
char ch[8]=“student”;或char ch[ ]= “student”;
注意 1、字符串赋值比字符逐个赋值要多占一个字节。 2、字符串赋值一般不需要指定数组的长度,系统可以确定。
思考 与冒泡排序的区别?
printf(“st=%s%c%c”,st,st[3],st[7]);
第6章 数组
(2)用puts函数输Baidu Nhomakorabea字符串
调用格式:puts(字符数组名); 功能:将字符数组中的字符串输出到显示器。
例3:char ch[ ]="student";
puts(ch); puts("Hello");
结果:student
第10章 字符串
10.4 字符数组与字符串 一、 字符数组的定义与初始化
1. 定义 数组元素为字符类型的数组。
例:char
str[40];
str[40];
也可以写成:int
思考 两种定义的区别?
第6章 数组
2. 字符数组的初始化
①逐个给全部元素赋初值。
char ch[7]={„s‟,‟t‟,‟u‟,‟d‟,‟e‟,‟n‟,‟t‟}; s ②用字符串给全部元素赋初值 char ch[8]={“student”}; ③部分元素赋初值 char ch[10]={“student”};
相关文档
最新文档