(七)字符与字符串的输⼊输出函数
⼀、字符输⼊/输出函数
1.putchar()函数
putchar()函数是C语⾔提供的标准字符输出函数,其作⽤是在显⽰显⽰器上输出给定的⼀个字符常量或字符变量,
与printf( )函数中的%c相当。putchar( )必须有⼀个输出项,输出项可以是字符型常量(包括控制字符和转义字符)、字符型变量、整型变量、整型常量、表达式,但只能是单个字符⽽不能是字符串。例如:
putchar(‘A’) /输出字母A/
putchar(65) /输出整数65作为ASCII码所对应的字符,结果也为字母A/
putchar(x) /这⾥x可以是整形或字符型变量/
getchar( )函数是标准字符输⼊函数,功能是从键盘上读取⼀个字符。该函数⽆参数,⼀般形式为:
getchar()
当调⽤此函数时,系统会等待外部的输⼊。
getchar()只能接受⼀个字符,⽤getchar()函数得到的字符可以赋给⼀个字符型变量或者整型变量,也可以不赋给任何变量,只能作为表达式的⼀部分。
例:输⼊⼀个字符,并输出该字符。
#include“stdio.h”
void main()
{
char  c;
c=getchar();/*调⽤getchar()函数,接收键盘输⼊的⼀个字符*/
putchar(c);
}
程序运⾏到“c=getchar();”语句时,等待键盘键⼊的字符,当输⼊⼀个字符A并按回车键后,系统才会确定本次输⼊结束,键⼊的字符被赋给变量c,程序输出结果也为字符A。
注意点:
linux操作系统的安装步骤(1)输⼊后需按回车键,字符才被送到变量所代表的内存单元中去;否则,认为输⼊没有结束;
(2)getchar()函数只能接受单个字符,⽽且得到的字符是ASCII码,输⼊数字也按字符处理。输⼊多于⼀个字符时,只接收第⼀个字符。
⼆、字符串的输⼊和输出vb技术是指什么
由于字符串时存放在字符数组中的,所以字符串的输⼊和输出实际上就是字符数组的输⼊和输出。对字符数组的输⼊和输出可以有两种⽅式:
(1)采⽤“%c”格式字符,每次输⼊或者输出⼀个字符。
例:⽤格式符“%c”逐个字符地输出⼀个字符数组。
#include<stdio.h>
void main()
{
char  c[10]={'I',' ','a','m','h','a','p','p','y'};
int i;
for(i=0;i<10;i++)
printf("%c",c[i]);
}
程序运⾏结果为:
I am happy
(2)采⽤“%s”格式符,每次输⼊或者输出⼀个字符串。
使⽤“%s”格式符处理字符串时的注意事项:
putchar函数a.在使⽤scanf( )函数来输⼊字符串时,“输⼊项表”中应直接填写字符数组的名字,⽽不再⽤取地址运算符&,因为C语⾔规定数组的名字就代表该数组的起始地址。
⼜由于字符串结束标志的存在,存储字符串的字符数组长度应⾄少⽐字符串的实际长度⼤1。例如:
char str[11];
scanf("%s",str); /在scanf( )函数中str之前不需要加上“&”/
若输⼊I_am_happy,因为字符串“I_am_happy”的实际长度是10,所以相应存储数组str的长度⾄少为11。
b.还可以⽤gets()函数输⼊字符串。gets()是系统提供的标准函数,在程序前⾯应包含头⽂件stdio.h,其功能是从键盘输⼊⼀个字符串给字符数组,
形式为:
gets(字符数组名)
其中,数组名不能带下标,且输⼊的字符串长度应⼩于数组的定义长度。该形式可以接受含有空格的字符串(使⽤scanf()函数为字符数组输⼊数据时,遇空格键或回车键则认为输⼊结束 ,且所读⼊的字符串中不包含空格键或回车键,⽽是在字符串末尾加‘\0’。这是gets()与scanf()的最⼤差别。)
例如:
java爬虫demo
char str[15];
scanf("%s",str);
如果从键盘上输⼊:How are you,则字符数组只能接受How,系统⾃动在后⾯加上⼀个‘\0’结束符。
因此,可以⽤⼀个scanf( )函数输⼊多个字符串,字符串 中间以空格键或回车键隔开。
若要字符数组接受How are you,修改为:
gets(str);
这时若输⼊函数数据How are you,则str能接受所有的字符。
**(3)⽤“%s”格式输出字符串时,printf( )函数中的输出项是字符数组名,⽽不是数组元素名。**例如,
下⾯的形式时错误的:
printf(“%s”,c[0]);
(4)⽤“%s”格式符输出字符数组时,遇‘\0’结束输出,且输出字符中不包含‘\0’。
如果数组长度⼤于字符串实际长度,则输出在遇到’\0’时结束。例如:
char c[10]={“china”};
oracle官方
printf("%s",c);
实际输出5个字符,到字符a为⽌,⽽不是10个字符。
(5)如果⼀个字符数组中包含⼀个以上‘\0’ ,则遇到第⼀个‘\0’时输出就结束。例如:
char c[10]={“chi\0na”} ;
printf("%s",c);
输出为chi。
(6)字符串输出还可以⽤puts()函数输出。
与gets( )⼀样,puts( )也是个系统标准函数,其功能是把⼀个字符数组中的内容送到终端。使⽤形式为:蝴蝶透明flash素材
puts(字符数组名)
⽤puts( )函数输出字符数组时,可以把其中的‘\0’前的内容全部输出,遇到‘\0’时,该字符不输出,系统⾃动将其转换为’\n’,即输出完字符串后系统⾃动换⾏。这是和printf()函数不⼀样的地⽅。