首页 理论教育 C语言程序设计教程:简洁明了的字符串输入输出

C语言程序设计教程:简洁明了的字符串输入输出

时间:2023-10-27 理论教育 版权反馈
【摘要】:图4-8程序运行结果2.用“%s”格式整体输入和输出使用带格式符%s的scanf函数能读入字符串。例4-10通过键盘输入一个由数字、字符和空格组成的字符串,存放到字符数组中,统计字符串中数字字符个数,并输出这些数字字符。

C语言程序设计教程:简洁明了的字符串输入输出

1.用“%c”格式字符逐个输入和输出

通过下面的例子,可以进一步了解“%c”格式的使用。

例4-9 通过键盘将字符串“my computer”存放到数组ch中(使用%c格式)。

提示:因为字符串“my computer”的有效长度为11,所以数组ch的长度必定大于或等于12。

参考程序:

程序运行结果如图4-8所示。

图4-8 程序运行结果

2.用“%s”格式整体输入和输出

(1)使用带格式符%s的scanf函数能读入字符串。例如:

功能:从键盘输入一串字符,读入到以ch开始的存储单元中,遇到空白字符,也就是空格符、换行符和制表符,都会使scanf函数停止读入字符。

注意:

①以%s格式输入时,scanf函数中的输入项应为一地址值,使用一维字符数组的名字即可,不需要在数组名前添加地址运算符&,因为数组名本身就是一地址值。

②以%s格式输入时,空格符、回车符、制表符都作为输入数据的分隔符,而不能被读入,并在最后一个字符后自动添加‘\0’。例如:以上输入语句中,若输入“my computer”,则在ch中将存入“my”,而不是“my computer”。

③输入字符串的长度不应超过字符数组所能容纳的字符个数。若超过,系统并不报错,相当于下标越界,应避免发生。

(2)使用带格式符%s的printf函数能输出字符串。例如:

功能:输出以ch为起始地址的存储单元内容到终端,遇到‘\0’时结束输出。

注意:

①printf函数,以%s格式输出字符数组时,输出项应为地址值,可以是一维字符数组的名字而不能是字符数组的一个元素。

②输出时,依次输出字符数组中的字符,直到遇第一个‘\0’为止。‘\0’不在输出之列。输出后不自动换行。

3.字符串输入函数

格式:gets(字符数组名);(www.xing528.com)

功能:从终端键盘读入字符串(包含空格符),直到读入一个换行符(按Enter键)为止。换行符读入后不作为字符串的内容,系统将自动用‘\0’代替。

说明:

①字符数组名为一确定的地址值,也可以用6.5节中的已赋值指针变量来代替。

②在gets函数调用中,空格不作为分隔符,它可以出现在字符串中,这是gets与scanf函数的主要区别。

例4-10 通过键盘输入一个由数字、字符和空格组成的字符串,存放到字符数组中,统计字符串中数字字符个数,并输出这些数字字符。

提示:因为字符串中包含空格,所以在给字符数组赋值时,宜使用gets()函数。

参考程序:

程序运行时,输入的字符串及运行结果如图4-9所示。

图4-9 程序运行结果

4.字符串输出函数

格式:puts(字符数组名);

功能:从字符数组名指向的待输出字符串起始地址开始,依次输出存储单元中的字符,当遇到第一个‘\0’时结束输出,并自动输出一个换行符。

说明:

①字符数组名为一确定的地址值,也可以用6.5节中的已赋值的指针型变量来代替。

②puts函数输出结束后自动换行,而printf函数输出结束后并不自动换行。

例4-11 编写程序,将字符数字s存放的字符串,除了下标为偶数、同时ASCII值为偶数的字符外,其余的全部删除。剩余字符形成的新串,放在字符数组t中。

提示:实际上,只须将字符数组s中符合条件的字符,放到字符数组t中即可。

参考程序:

程序运行时,输入的字符串及程序运行结果如图4-10所示。

图4-10 程序运行结果

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈