




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第第10章章 字符串字符串2字符数组字符数组u字符数组定义格式为:字符数组定义格式为: char char 数组名数组名 数组长度数组长度 u字符数组中存放的字符可以组成字符串,此时字符数组中存放的字符可以组成字符串,此时至少有一个元素为至少有一个元素为 00,从左边算起的第一,从左边算起的第一个个00是该字符串的结束符。是该字符串的结束符。u字符数组中没有字符数组中没有 00 元素,就不能按字符串元素,就不能按字符串处理。处理。字符数组字符数组3u字符数组的初始化方法:字符数组的初始化方法:char a=C, ,L,a,n,g,u,a,g,e,0;char a=C, ,L,a,n,g,u,a
2、,g,e,0;char b=67,32,76,97,110,103,117,97,103,101,0;char b=67,32,76,97,110,103,117,97,103,101,0;char c=C Language;char c=C Language;char d=C Language;char d=C Language;字符数组字符数组4例:求字符串的长度例:求字符串的长度字符串的长度是字符串中位于结束标识 0(对应整数0)之前的所有字符的个数,也就是从数组的第一个元素开始到第一个0元素为止所有非0元素的个数#include void main() char str =Beijin
3、g Olympic games;int i, iLength=0;while( striLength != 0 )iLength+;printf(Length of string:n);for( i=0; iiLength; i+ )printf(%c, stri );printf(n is %dn, iLength );字符数组字符数组5字符串的输入和输出字符串的输入和输出 C C语言专门为字符串的输入输出定义了一系列库函语言专门为字符串的输入输出定义了一系列库函数,常见的有数,常见的有scanfscanf和和printfprintf、getsgets和和putsputs。字符数组字符数组6
4、scanfscanf函数函数 使用使用scanfscanf函数输入字符串的一般格式为:函数输入字符串的一般格式为:scanf(%s, scanf(%s, 字符数组字符数组) )其中,其中,%s%s为字符串描述符,与之对应的输入项是字为字符串描述符,与之对应的输入项是字符数组的符数组的首地址首地址。例如:例如:char x10; scanf(“%s”, x);scanfscanf函数使用空白(空格、制表符、回车符等)函数使用空白(空格、制表符、回车符等)作为输入数据的分隔符,所以只能获取作为输入数据的分隔符,所以只能获取“单词单词”。字符数组字符数组7例:例: char str120,str22
5、0,str320;char str120,str220,str320; scanf(%s%s%s,str1,str2,str3); scanf(%s%s%s,str1,str2,str3);输入数据:输入数据:how are you?how0are0you?0 用用%s%s输入输入时,时,遇遇空格空格或或回车回车便认为一个字符串结束。便认为一个字符串结束。结结 str1 str2果果 str3计计 how are you? Hello world!划划 Thank you!字符数组字符数组8printfprintf函数函数n printfprintf函数的用法与函数的用法与scanfscanf
6、函数类似,输出参数函数类似,输出参数可以是字符串常量,一般格式为:可以是字符串常量,一般格式为:printf(%s, printf(%s, 字符数组名或字符串常量字符数组名或字符串常量) ) 例如:例如:char x10=Hi,all.;char x10=Hi,all.;printf(%s,x);printf(%s,x);printf(%s,Hello.);printf(%s,Hello.);字符数组字符数组9getsgets函数和函数和putsputs函数函数使用使用getsgets函数可输入函数可输入一句话一句话(包含空格、制表符包含空格、制表符)其语)其语法为:法为:gets( gets
7、( 字符数组字符数组 ) )存入字符数组的是一个字符串(以存入字符数组的是一个字符串(以 00 结束),但结束),但不包括回车符。不包括回车符。char s100;char s100;gets(s);gets(s);若输入是:若输入是:_ _Im_a_sport_ _ _Im_a_sport_ _ 则则s s的内容为的内容为 _ _Im_a_sport_ _ _Im_a_sport_ _使用使用putsputs函数输出字符串,会在结束时自动换行,其语函数输出字符串,会在结束时自动换行,其语法为:法为:puts( puts( 字符数组或字符串常量字符数组或字符串常量 ) )字符数组字符数组10例
8、:输入一句话,统计字母的个数。例:输入一句话,统计字母的个数。方法是,将输入的句子存放在一个字符数组中,然后从第1个字符开始做逐一判断,以确定该字符是不是字母,直至句子结束#include #define N 256void main() char strN; int i, iCount=0;puts(输入一句话:输入一句话:); gets( str );for( i=0; stri!=0; i+ )if( (A=stri & stri=Z)| (a=stri & stri=z) iCount+;puts(输入的句子是:输入的句子是:);puts(str);printf(其中包
9、含其中包含 %d 个字母。个字母。n, iCount); 字符数组字符数组11q与字符串有关的内置函数在头文件与字符串有关的内置函数在头文件string.h中定义中定义q要使用标准库字符串处理函数,程序前应该包含:要使用标准库字符串处理函数,程序前应该包含: #include string.hstrlenstrcpystrcmpstrcat字符串处理函数字符串处理函数12字符串的长度是字符串中位于字符串的长度是字符串中位于 0 0 之前的字符的之前的字符的个数个数根据字符串中根据字符串中 0 0 的位置来计算字符串长度。的位置来计算字符串长度。若:数组中下标为若:数组中下标为i i 的元素为的
10、元素为00,则,则,串长串长= = i i。例:求字符串的长度例:求字符串的长度#include void main()int length=0;char str30; printf(Input a String: ); gets(str);while( strlength !=0 )length+;printf(n String length is %dn, length );a b c d e f g 0串长串长length=7length=0length=1length=2字符串处理函数字符串处理函数13求字符串长度函数求字符串长度函数语法格式:语法格式:strlenstrlen(s);
11、(s);功能功能:计算字符串:计算字符串s s 中字符的个数,并将字符的个数作为函中字符的个数,并将字符的个数作为函数的返回值,不包括字符数的返回值,不包括字符 00。#include #include void main() int length=0; char str30; printf(Input a String: ); gets(str); while( strlength !=0 ) length+; printf(n String length is %dn, length );length= strlen(str);字符串处理函数字符串处理函数14字符串复制函数字符串复制函数语
12、法格式语法格式:strcpystrcpy(dest,src);(dest,src);功能功能:把字符数组:把字符数组srcsrc中的字符串拷贝到字符数组中的字符串拷贝到字符数组destdest中,中,00也一同拷贝。也一同拷贝。srcsrc也可以是一个字符串常量。也可以是一个字符串常量。#include #include void main()char source = We change lives;char target20;strcpy(target, source);printf(n 源字符串源字符串 = %s, source);printf(n 目标字符串目标字符串 = %sn, t
13、arget);目标数组目标数组源数组源数组 源字符串源字符串 = We change lives 目标字符串目标字符串 = We change livestarget= source ; ?字符串不能直接整体赋值,字符串不能直接整体赋值,必须借助必须借助strcpy!字符串处理函数字符串处理函数15字符串比较函数字符串比较函数语法格式语法格式:strcmpstrcmp(str1,str2);(str1,str2);功能功能:比较字符串:比较字符串str1str1和和str2str2的大小,返回比较的结果。的大小,返回比较的结果。结结果为:果为:0 0-相等,相等,正数正数-strstr1 1大
14、,大,负数负数-strstr2 2大大比较原则比较原则:按照:按照串中对应位置字符的串中对应位置字符的ASCIIASCII码码比较比较例如:例如: str1str2“abc” 与与 “abc” , strcmp(str1,str2)=0“abcd”与与 “abck”, strcmp(str1,str2)0 “abc” 与与 “b”, strcmp(str1,str2)0 字符串处理函数字符串处理函数16例:例:验证用户输入的用户名及密码是否正确验证用户输入的用户名及密码是否正确#include #include void main()char name15, pwd15;char sname
15、=System, spwd = 123456;int login=0;printf(n 请输入用户名:请输入用户名: );gets(name);printf(n 请输入密码:请输入密码: );gets(pwd);if(strcmp(name, sname)=0) & (strcmp(pwd,spwd)=0) login=1;if (login) printf(n 您已成功登录!您已成功登录! n );elseprintf(n 用户名和用户名和/或密码无效!或密码无效! n ); 请输入用户名:请输入用户名:System 请输入密码:请输入密码: 123456 您已成功登录!您已成功登录
16、!name= sname?字符串不能用关系运算符比较大小,字符串不能用关系运算符比较大小,必须借助必须借助strcmp!字符串处理函数字符串处理函数17字符串连接函数字符串连接函数语法格式语法格式:strcat(dest,src);功能功能:连接两个连接两个字符数组中的字符串,将字符数组中的字符串,将srcsrc串接在串接在destdest串串后,结果存放在字符数组后,结果存放在字符数组destdest中,中,返回的函数值是字符数组返回的函数值是字符数组destdest的首地址。的首地址。字符数组字符数组destdest的长度不可缺省,的长度不可缺省,应足够大。应足够大。目标数组目标数组源数组
17、源数组#include #include int main(void)char source_string = UPC;char target_string30 = Hello ;strcat(target_string, source_string);printf(n 源字符串源字符串 = %s, source_string);printf(n 目标字符串目标字符串 = %sn, target_string); 源字符串源字符串 = UPC 目标字符串目标字符串 = Hello UPC字符串处理函数字符串处理函数18例:输入两个字符串,然后把它们连接起来形成一个例:输入两个字符串,然后把它们
18、连接起来形成一个字符串,再输出到屏幕上。字符串,再输出到屏幕上。方法方法1 1:使用:使用strcatstrcat函数函数#include #include void main() char s1256, s2256;puts(输入输入2个字符串:个字符串:);gets(s1);gets(s2);strcat(s1, s2);printf(连接后为:连接后为:%sn, s1);字符串的应用字符串的应用19方法方法2 2:使用数组:使用数组#include void main() char s1256, s2256;int i=0, j=0;puts(输入输入2个字符串:个字符串:);gets(s1); gets(s2);while(s1i !=0) i+;while(s2j !=0 ) s1i=s2j;i+;j+;s1i=0;printf(连接后为:连接后为:%sn, s1);字符串的应用字符串的应用20例:例:输入一
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 课题申报书:民办院校高层-中层领导干部培养体系构建研究
- 外科质量改善行动计划
- 服装生产面料采购质量保障措施
- 新教材应用中的教学反思心得体会
- 企业信息技术2.0人才培养计划
- 建筑业主责任协议
- 放射性药物管理领导小组职责
- 科学教育新标准实施心得体会
- 非营利组织财务报账流程梳理
- 外科手术并发症监测计划
- 六年级上册数学冀教版课件《圆的认识》
- 宠物犬品种识别-玩赏犬品种(宠物品种)
- YS/T 1025-2015电子薄膜用高纯钨及钨合金溅射靶材
- 《社会主义核心价值观》优秀课件
- 髋关节的解剖-课件
- 幼儿园绘本故事:《十二生肖》 课件
- 一例心肌梗塞患者的病例讨论培训课件
- GB∕T 13171.2-2022 洗衣粉 第2部分:试验方法
- 楷书(课件)课件
- 工程监理部人员分工与职责
- 课程设计 CA6140拨叉说明书
评论
0/150
提交评论