C语言_第6章_3、字符数组_第1页
C语言_第6章_3、字符数组_第2页
C语言_第6章_3、字符数组_第3页
C语言_第6章_3、字符数组_第4页
C语言_第6章_3、字符数组_第5页
已阅读5页,还剩43页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1 12 23 35 58 89 910101111用字符串给字符数组初始化用字符串给字符数组初始化char st8 = welcome; 等价于等价于:char st8 = w, e, l, c, o, m, e, 0;注意:注意:这里的这里的 st 是字符数组的名字是字符数组的名字, 代表字符数组在内代表字符数组在内存中的存中的起始地址起始地址, 是一个地址常量。是一个地址常量。1.这个赋值表达式是指将字符串中的每一个字符依这个赋值表达式是指将字符串中的每一个字符依次赋给以次赋给以 st 开始的连续的地址单元中,最后在串开始的连续的地址单元中,最后在串尾添加一个尾添加一个0。1212131

2、3用字符串方式赋值比用字符逐个赋值用字符串方式赋值比用字符逐个赋值要多占一个字节,由要多占一个字节,由C C编译系统在末编译系统在末尾自动加上表示尾自动加上表示字符串结束标志的字符串结束标志的00141415151616例如例如: char str15, str25,str35; scanf(“%s%s%s”,str1,str2,str3);输入输入How are you?How are you?0woH0era0?uoystr1str2str31818输入输入How are you?How are you?1919输入时,遇回车键结束,但获得的字符中不包括回输入时,遇回车键结束,但获得的字符

3、中不包括回车键本身,而是在字符串末尾添加车键本身,而是在字符串末尾添加0。C语言中,语言中,数组名数组名代表该数组的起始地址,因此,代表该数组的起始地址,因此,scanf( )函数中不需要地址运算符函数中不需要地址运算符&。输出时,遇输出时,遇0结束,且输出字符中不包含结束,且输出字符中不包含0按按%s格式输出时,格式输出时,printf( )函数的输出项式函数的输出项式字符数字符数组名组名,而不是元素名。,而不是元素名。按按%s格式输出时,即使数组长度大于字符串长度,格式输出时,即使数组长度大于字符串长度,遇遇0也结束。也结束。 与与“%c%c”对应的输出对应的输出参数要求为单个字符

4、参数要求为单个字符2121数组名代表该数组的数组名代表该数组的起始地址,因此,起始地址,因此,scanf()scanf()函数中不需要函数中不需要地址运算符地址运算符& &。与与“%s%s”对应的输出参数对应的输出参数要求为字符数组名(地址常要求为字符数组名(地址常量)或字符串的起始地址,量)或字符串的起始地址,系统从第一个字符起依次输系统从第一个字符起依次输出串内容,直到遇出串内容,直到遇00串串结束符才结束。结束符才结束。2222scanf 函数不能完整地读入带空格的字符串。函数不能完整地读入带空格的字符串。C语言提供了一个用于语言提供了一个用于读字符串的标准函数读字符串的

5、标准函数, 它读它读入全部字符(包括空格)入全部字符(包括空格), 直到遇到直到遇到回车符回车符为止。为止。例如:例如: char c13; gets (c);键盘输入:键盘输入: How are you? 结果为结果为?2323字符串处理的标准函数字符串处理的标准函数#include (除了除了puts 和和gets) 假设有如下定义:假设有如下定义:char ch20;2424字符串的输出字符串的输出函数函数 puts( ) 格式格式:puts(ch) 功能功能:向终端输出:向终端输出ch中的字符串中的字符串, 遇到遇到ch中中的的0, 输出结束输出结束, 并将并将0转换成转换成n输输出出

6、; 说明说明:其中:其中 ch 可以是某个字符数组名可以是某个字符数组名, 也可也可以是一个字符串常量。以是一个字符串常量。2525字符串的输出函数字符串的输出函数 puts( )putsputs函数中函数中可以输出转可以输出转义字符义字符2626字符串的输出函数字符串的输出函数 puts( )putsputs函数中函数中可以输出转可以输出转义字符义字符2727282829291012$%ert 1930303131323233333434字符串的比较字符串的比较 strcmp ( )3535字符串的比较字符串的比较 strcmp ( )注意注意:对两个字符串:对两个字符串str1和和str2

7、,比较不能,比较不能用一下形式:用一下形式: if (str1=str2) printf(“yes!”);只能采用字符串比较函数逐位比较确定,如只能采用字符串比较函数逐位比较确定,如 下所示:下所示: if (strcmp(str1,str2)=0) printf(“yes!”);3636字符串大小写转换函数字符串大小写转换函数 3737字符串大小写转换函数字符串大小写转换函数 3838字符串的连接函数字符串的连接函数strcat()格式格式:strcat(ch1, ch2);功能功能:将:将ch2复制到复制到ch1的后面的后面;连接时先将连接时先将ch1的的0去掉去掉, 连接后在新字连接后在

8、新字符串后补上符串后补上0 。3939字符串的连接函数字符串的连接函数strcat()要求要求ch1必须是一个足够大的字符数组必须是一个足够大的字符数组, ch2可以是字符串常量或字符数组名。可以是字符串常量或字符数组名。例例:char ch120=“aaa”, ch220=“bbbb”; 执行执行 strcat(ch1, ch2); 之后,之后,ch1 和和 ch2的的值变化为:值变化为:“aaabbbb”ch1:“bbbb”ch2:4040字符串处理函数字符串处理函数函数原型函数原型说明说明puts(str)输出字符串,输出到输出字符串,输出到00为止并换行为止并换行gets(str)输入字符串,可输入空白字符,回车结束输入字符串,可输入空白字符,回车结束strcat(s1,s2)字符串连接,字符串连接,s1 s1应留有总够的空间应留有总够的空间strcpy(s1,s2)字符串复制,字符串复制,s1 s1应留有总够的空间应留有总够的空间strcmp(s1,s2)字符串比较,依次按字符串比较,依次按ASCIIAS

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论