资源描述:
《C语言数组详细讲解.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、一、字符数组的定义一维字符数组:用于存储和处理1个字符串,其定义格式与一维数值数组一样。char str[20];二维字符数组:用于同时存储和处理多个字符串,其定义格式与二维数值数组一样。charcountry[10][20];country:第i个字符串二.字符数组的初始化字符数组的初始化.1.可以通过为每个数组元素指定初值字符来实现。charstr[10]={'I','','a','m','',‘h’,'a','p','p','y'};charstr[]={"Iamhappy"}; 可以省略花括号,如下所示cha
2、rstr[]="Iamhappy";charcountry[10][20]={“china”,”japanese”,……};注意:上述这种字符数组的整体赋值只能在字符数组初始化时使用,不能用于字符数组的赋值,字符数组的赋值只能对其元素一一赋值,下面的赋值方法是错误的 charstr[15]; str="Iamhappy";strcpy(str,"Iamhappy");不是用单个字符作为初值,而是用一个字符串(注意:字符串的两端是用双引号“”而不是单引号‘’括起来的)作为初值。‘a’“a”区别
3、三、字符数组的引用字符数组的逐个字符引用,与引用数值数组元素类似。 (1)字符数组的输入 除了可以通过初始化使字符数组各元素得到初值外,也可以使用getchar()或scanf()函数输入字符。 例如: charstr[10];……for(i=0;i<10;i++) {scanf("%c",&str); fflush(stdin);/*清除键盘输入缓冲区*/ }…… (2)字符数组的输出 字符数组的输出,可以用putchar()或printf()函数。 例如: char st
4、r[10]="clanguage"; …… for(i=0;i<10;i++) printf("%c",str); printf("\"); …… 注意:逐个字符输入、输出时,要指出元素的下标,而且使用“%c”格式符。另外,从键盘上输入字符时,无需输入字符的定界符──精选范本,供参考!单引号;输出时,系统也不输出字符的定界符。 字符数组的整体操作 [案例] 字符数组的整体输入与输出。 /*功能:将2维字符数组进行初始化,并在屏幕上输出*/ main() {inti; charname[5][9]=
5、{"张三山","李四季","王五魁","刘六顺","赵七巧"}; for(i=0;i<5;i++) printf("%s\t",name); /*name代表该行数组元素的首地址*/ } 1.字符串及其结束标志 所谓字符串,是指若干有效字符的序列。C语言中的字符串,可以包括字母、数字、专用字符、转义字符等。 C语言规定:以‘ ’作为字符串结束标志(‘ ’代表ASCII码为0的字符,表示一个“空操作”,只起一个标志作用)。因此可以对字符数组采用另一种方式进行操作了──字符数组的整体操作。 注意:由于
6、系统在存储字符串常量时,会在串尾自动加上1个结束标志,所以无需人为地再加1个。 另外,由于结束标志也要在字符数组中占用一个元素的存储空间,因此在说明字符数组长度时,至少为字符串所需长度加1。 2.字符数组的整体初始化 字符串设置了结束标志以后,对字符数组的初始化,就可以用字符串常量来初始化字符数组。 3.字符数组的整体引用 (1)字符串的输入 除了可以通过初始化使字符数组各元素得到初值外,也可以使用scanf()函数输入字符串。 (2)字符串的输出 printf()函数,不仅可以逐个输出字符数组元素,还可以整体输出存放在字符
7、数组中的字符串。 四、常用的字符串处理函数 字符串标准函数的原型在头文件string.h中。 1.输入字符串──gets()函数 (1)调用方式:gets(字符数组) (2)函数功能:从标准输入设备(stdin)──键盘上,读取1个字符串(可以包含空格),并将其存储到字符数组中去。 (3)使用说明 1)gets()读取的字符串,其长度没有限制,编程者要保证字符数组有足够大的空间,存放输入的字符串。 2)该函数输入的字符串中允许包含空格,而scanf()函数不允许。 2.输出字符串──puts()函数 (1)调用方式:puts
8、(字符数组) (2)函数功能:把字符数组中所存放的字符串,输出到标准输出设备中去,并用‘’取代字符串的结束标志‘ ’。所以用puts()函数输出字符串时,不要求另加换行符。 (精选范本,供参考!3)使用说明 1)字符串中允许包含转义字符,输出时产生一个控制操作。 2)该函数一次只能输