位置:首页 > 软件操作教程 > 编程开发 > C语言 > 问题详情

C语言 字符数组的整体引用

提问人:刘团圆发布时间:2020-11-30

(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);

输出结果为:

image.png

为什么会输出这样的结果呢?其实,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()函数不允许。


继续查找其他问题的答案?

相关视频回答
回复(0)
返回顶部