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 程序运行结果
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。