首页 第11章 字符数组

第11章 字符数组

举报
开通vip

第11章 字符数组null第11章 字符数组第11章 字符数组用来存放字符数据的数组是字符数组,常用来处理字符串。字符数组其实就是类型为char的数组。同其他的数组类型一样,字符数组既可以是一维的,也可以是二维,甚至多维的。本章内容如下: 字符数组的定义; 字符数组的初始化; 字符数组的引用; 字符数组与字符串的关系; 字符数组的输入与输出; 字符串处理函数; 应用举例。11.1 字符数组的定义11.1 字符数组的定义一维字符数组的定义方式如下: char 数组名[常量表达式]; 例如:char c[5]; 二维数组的定义方...

第11章  字符数组
null第11章 字符数组第11章 字符数组用来存放字符数据的数组是字符数组,常用来处理字符串。字符数组其实就是类型为char的数组。同其他的数组类型一样,字符数组既可以是一维的,也可以是二维,甚至多维的。本章内容如下: 字符数组的定义; 字符数组的初始化; 字符数组的引用; 字符数组与字符串的关系; 字符数组的输入与输出; 字符串处理函数; 应用举例。11.1 字符数组的定义11.1 字符数组的定义一维字符数组的定义方式如下: char 数组名[常量 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf 达式]; 例如:char c[5]; 二维数组的定义方式如下: char 数组名[常量表达式][常量表达式]; 例如:char c[5][5]; 在字符数组中,我们只能每个元素存放一个字符数据。例如: char c[5]; c[2]='a'; 字符型和整型是相互通用的,所以,可以定义一个整型数组来存放字符型数据。例如: int c[5]; c[2]='a';11.2 字符数组的初始化11.2 字符数组的初始化字符数组的初始化,即对字符数组中的每个元素赋值。例如: char c[10]={'I',' ','a','m',' ','h','a','p','p','y'}; 把这10个字符数组元素分别赋值为:c[0]='I',c[1]=' ',c[2]='a',c[3]='m',c[4]=' ',c[5]='h',c[6]='a',c[7]='p',c[8]='p',c[9]='y'。11.3 字符数组的引用11.3 字符数组的引用通过引用字符数组中的元素,进行程序设计跟前面所讲的数组引用相似。 【例11-1】输入一个由5个字符组成的单词,将其内容颠倒过来,并输出。11.4 字符数组与字符串的关系11.4 字符数组与字符串的关系在C语言中,字符串使用双引号括起来的字符序列。C语言中,是将字符串用字符数组来处理的。 【例11-2】编写一程序,用于合并两个已知的字符数组。nullC语言允许用一个简单的字符串常量初始化一个字符数组,而不必使用一串单个字符。例如: char str[ ]={"good"}; 可以省略{ },直接用双引号。 g o o d \0 字符数组在编译时,自动在字符串的末尾加上了一个特殊字符‘\0 ’。所以,字符数组的个数是5。 char str1[ ]={"good"}; char str2[ ]={'g','o','o','d'};11.5 字符数组的输入与输出11.5 字符数组的输入与输出由于字符串放在字符数组中,所以,对字符串的输出也就是对字符数组的输出。字符数组的输出有两种形式: (1)当字符数组中存储的字符不是以‘\0’结束时,只能像普通的数组那样,用格式符"%c"一个元素一元素的处理。 (2)当用字符数组处理字符串时,可以与“%s”格式字符配合,完成字符串的输入输出。null注意: (1)在使用scanf函数输入字符串时,“地址”部分应该直接写字符数组的名字,而不是取地址运算符&。因为在C语言中,数组的名字代表该数组的起始地址。 (2)在输出字符串时,输出项也为数组名,不能使数组元素。 利用格式符"%s"输入的字符串,以“空格”,“TAB”间隔多个字符串,“回车”结束输入。 (3)当字符数组长度大于字符串的实际长度时,也只输出到'\0‘时结束。例如: char str[20]="world"; printf("%s",str); (4)如果字符数组中包含多个‘\0’,遇到第一个'\0'时,输出结束。例如: char str[20]="hello\0world"; printf("%s",str); (5)用scanf函数“%s”格式输入一个字符串时,函数中输入项用数组名,并且该数组已定义,而且输入字符串的长度应小于数组长度。 例如: char str[10]; scanf("%s",str);11.6 字符串处理函数11.6 字符串处理函数C语言中有很多字符串处理的库函数,这些库函数为字符串处理提供了方便。在使用时,要在程序开头将这些字符串库文件包含到程序中。即:#include 。11.6.1 输入字符串函数gets11.6.1 输入字符串函数getsgets函数用于输入一个字符串,其调用形式如下: gets(字符数组); 将一个字符串存放到字符数组中,并且得到一个函数值。即,gets函数的返回值是存放输入字符串的字符数组的起始地址。例如: char str[ 20]; gets(str); 其中,str是字符数组,输入的字符串存放在字符数组str中。11.6.2 输出字符串函数puts11.6.2 输出字符串函数putsputs函数用于输出一个以'\0 '结尾的字符串,其调用形式如下: puts(字符数组); 例如: char str[]="world"; puts (str); puts函数输出的字符串可以包含转义字符。 char str[]="hello\nworld"; puts (str); 输出结果为: hello world11.6.3 字符串测长度函数strlen11.6.3 字符串测长度函数strlenstrlen函数用于测试字符串的长度。函数值为实际的字符串的长度,不包括'\0 '所占的位置。其调用形式如下: strlen(字符数组); 例如: char str[10]={"hello"}; printf("%d",strlen(str)); 输出结果为:5。strlen测试的是实际的字符串的长度,所以结果既不是6,更不是10。 strlen函数还可以直接测试字符串常量的长度,例如: strlen("hello");11.6.4 字符串比较函数strcmp11.6.4 字符串比较函数strcmp在C语言中,不允许用下列形式比较字符串。 if(str1==str2) { printf("相等"); } 字符串比较不能用关系运算符。只能用strcmp函数,比较结果由strcmp函数返回。其调用形式如下: strcmp(字符串1,字符串2) 11.6.4 字符串比较函数strcmp11.6.4 字符串比较函数strcmp完成“字符串1”与“字符串2”的关系比较,即对两个字符串自左至右逐个字符按其ASCII码值相比,直到出现不同的字符或遇到'\0'为止。比较的结果由函数值获得: char str1[20],str2[20]; int n; n=strcmp(str1,str2); 如果"字符串1"="字符串2",函数值n为0; 如果"字符串1">"字符串2",函数值n为一正数; 如果"字符串1"<"字符串2",函数值n为一负数。 11.6.5 字符串复制函数strcpy和strncpy11.6.5 字符串复制函数strcpy和strncpyC语言中,不允许用赋值语句直接将一个字符串赋给另一个字符数组。即: str1="hello"; str2=str1; 字符串复制必须使用strcpy函数。字符串复制函数,是将字符串一个字符一个字符的复制,直到遇到'\0 '字符为止。其中,对'\0 '字符也一起复制。其调用形式如下: strcpy(字符数组1,字符数组2) 在将字符数组2复制到字符数组1中时,字符数组1的空间必须足够大。11.6.5 字符串复制函数strcpy和strncpy11.6.5 字符串复制函数strcpy和strncpy注意: 字符数组1必须是字符数组名的形式。 字符串2可以是字符数组名或字符串常量。 strncpy函数是将字符串2中前n个字符复制到字符数组1中。 如果需要复制字符串2中前面的若干个字符,则可指出需要复制的字符数。其调用形式如下: strncpy(字符数组1,字符串2,字符数) strncpy(str1, str2, 2) ; 把str2中头上二个字符复制到str1中去,str1再加一个结束‘\0’。11.6.6 字符串连接函数strcat11.6.6 字符串连接函数strcatstrcat函数用于连接两个以'\0 '结尾的字符串,其调用形式如下: strcat(字符数组1,字符数组2) 例如: char str1[20]="how "; char str2[20]="are you?"; strcat(str1,str2); 运行后,输出:how are you?11.7 应用举例11.7 应用举例【例11-4】将一个字符串复制到另一个字符串中,即完成strcpy函数的功能。 【例11-5】编写程序实现输出一个字符串后,将字符串的内容颠倒过来。
本文档为【第11章 字符数组】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_225444
暂无简介~
格式:ppt
大小:55KB
软件:PowerPoint
页数:0
分类:互联网
上传时间:2011-12-10
浏览量:26