C语言 字符数组的整体引用
(1)使用printf()函数输出字符串
只要在printf()函数中使用格式指示符“%s”就可以输出字符串。例如:
char s1[20] ="Hello boy";
printf("%s\n",ch);
printf()函数在输出字符串时,是通过在字符数组中寻找字符串结束标记'\0'来判断字符串是否结束。也可以将一个不包含'\0'的字符数组用printf()函数输出,例如:
char s2[5] ={'h','e','l','l','o');
printf ("%s\n",s2);
输出结果为:
为什么会输出这样的结果呢?其实,printf()函数输出时,首先会将每个数组元素的内容输出,然后printf()函数会继续访问内存中位于数组之后的内容,并当做字符输出,直到遇到字符串结束标记'\0'或者试图访问没有分配给该程序的内存单元而导致运行时出错。所以,在编写程序时,必须确保每个字符串结尾插入字符串结束标记'\0'。
(2)使用scanf()函数输入字符串
除了可以通过初始化使字符数组各元素得到初值外,也可以使用scanf()函数输入字符串,只需在格式指示符中使用“%s”。例如:
char str[20];
scanf("%s",str);
使用scanf()输入字符串时,不需要使用取地址符“&”,因为数组名本身就代表了数组的首地址。
(3)使用puts()函数输出字符串
puts()函数和gets()函数是专门的字符串输入输出函数,也包含在标准输入输出头文件stdio.h中。
①puts()函数的一般调用方式:
puts (字符数组);
②函数功能:把字符数组中所存放的字符串,输出到标准输出设备中去,并用VT取代字符串的结 束标志'\0'。所以用puts()函数输出字符串时,不要求另加换行符。例如:
char str[20]="Hello!";
puts (str):
puts()函数也可直接输出一个字符串常量,例如:
puts("welcome");
③说明
使用puts()函数输出字符串常量或字符串变量时,字符串中可包含转义字符,例如:
puts("wel\ncome");
输出结果为:
wel
come
与printf()函数相比,Printf()函数一次能输出多个字符串,而puts函数一次只能输出一个字符串。
(4)使用gets()函数输入字符串
①gets()函数的一般调用方式如下:
gets(字符数组);
②函数功能:从标准输入设备——键盘上,读取1个字符串(以按下Enter键结束),将其存储到字符数组中。例如:
char str[20];
gets (str);
puts (str);
输入:
Hello/
则字符数组str中将依次存入'H''e''l''l''o''\0'。
③说明
使用gets()函数输入的字符串,其长度没有限制,编程者需保证字符数组有足够大的空间来存放输入的字符串。
gets()函数输入的字符串中允许包含空格,而scanf()函数不允许。
点击加载更多评论>>