函数gets()的用法

gets()函数和scanf()对比

先看代码:

#include
int main(void){
	char a1[10], a2[10],a3[10];
	scanf( "%s%s",a1,a2);
//gets(a2);
	gets(a3);
	puts(a1);
	puts(a2);
	puts(a3);
//	printf("%s\n",ch1);
//	printf("%s",ch2);
	printf("end..."); 
	return 0;
}

函数gets()的用法_第1张图片
再看一段代码:

#include
int main(void){
	char a1[10], a2[10],a3[10];
	scanf( "%s",a1);
	gets(a2);
	gets(a3);
	puts(a1);
	puts(a2);
	puts(a3);
//	printf("%s\n",ch1);
//	printf("%s",ch2);
	printf("end..."); 
	return 0;
}

函数gets()的用法_第2张图片

a. 可以看到a1中放的是joncy, scanf是用空格来结束的。 从结果中来看, scanf在读完之后空格还在缓冲区中。 而gets是接收空格的,所以第二张图中输出的 a2 前有空格存在。

b. 从第一张图中, 还可以看出scanf也不识别回车, 同样也把回车留在了缓存区中。 而gets是接收回车的, 所以第一张图中的 a3 输出的是回车。

看代码:

#include
int main(void){
	char a1[10],a2[10],a3[10],a4[10];
	gets(a1);
	gets(a2);
	gets(a3);
	gets(a4);
	puts(a1);
	puts(a2);
	puts(a3);
	puts(a4);
	printf("end...")
	return 0;
}

函数gets()的用法_第3张图片
c. 这个图可以看到,gets函数能够接收字符串, 而且不把回车符号留在缓存区中。

#include
int main(void){
	char a1[10];
	gets(a1);
	char c = getchar();
	puts(a1);
	printf("%c\n",c);
	printf("end...");
	return 0;
}

函数gets()的用法_第4张图片

#include
int main(void){
	char a1[10],a2[10];
	gets(a1);
	char c = getchar();
	puts(a1);
	printf("%c\n",c);
	scanf("%s",a2);
	char c2 = getchar();
	puts(a2);
	printf("%c",c2);
	printf("end...");
	return 0;
}

函数gets()的用法_第5张图片
d. 要注意这里puts自己把回车符吸收了,所以要等待输入。但是scanf没有,所以c2是换行符。

注:gets函数把字符串输出到标准输出设备,将’\0’转换为回车换行。但是scanf不会,末尾还是’\0’,且空格,换行或者tab都会留在缓存区。

这是一段百度词条的代码:


> #include 
> #include  int main(void) {
>     int i;
>     char string[20];
>     for(i=0;i<10;i++)
>         string[i]='a';
>     puts(string);
>     getch();
>     return 0; }

这是运行结果:
函数gets()的用法_第6张图片

确实我们看到, gets看不到 ‘\0’ 是不会结束的。


#include 
#include  
/*
	字符串的末尾\0不会输出如果在%c的情况下 
	gets()把换行符吸收转换成\0 
*/
int main(void) {
     int i;
     char string[10];
//     for(i=0;i<10;i++)
//         string[i]='a';
gets(string);
 for(i=0;i<10;i++)
     printf("%d",string[i]);
    // getch();
    return 0; 
	}

编程中遇到的问题:
scanf("%s,%s",a1,a2); 千万不要这样写,字符串输入最好分开写,或者把逗号去掉。

本文引用百度词条:https://baike.baidu.com/item/puts/4747927?fr=aladdin

更多干货文章,编程资源,请关注公众号『Carry互联网笔记』
函数gets()的用法_第7张图片

你可能感兴趣的:(C语言)