c语言问题用gets()后必须用puts()吗?

#include<stdio.h>
int main(){
char ch[4];
printf("请输入串:");
int a;
gets(ch);
for(a=0;ch[a]!='\0';a++);
printf("输入的串是:");
int i;
for(i=0;1<4;i++)
printf("%c",ch[i]);
}
这样用printf输出后,后面一堆乱码。

第1个回答  2020-11-14
#include<stdio.h>
int main(){
char ch[400];
printf("请输入串:");
int a;
gets(ch);
for(a=0;ch[a]!='\0';a++);
printf("输入的串是:");
int i;
for(i=0;i<a;i++)
printf("%c",ch[i]);
}
第2个回答  2020-11-14
for(i=0;i<4;i++)
是i<4,不是1<4追问

眼瞎了

采纳了

谢谢

以后有问题找你询问可以吗

本回答被提问者和网友采纳

c语言问题用gets()后必须用puts()吗?
printf("%c",ch[i]);}

c语言中gets函数的用法
是的,如果这是某书上的做法,那么,我只能说它为你们提供了一个错误的榜样。这样使用gets()已经发生了溢出!这是gets()不检查数据边界的bug造成的。另外,“字符串不是总是以'\\0'作为串的结束符”,答案是肯定的,不然puts()函数就不能在合适的地方停下来了。这里st[15]被gets()函数赋值为'\\0...

C语言中如何用 gets(),put()
gets()、puts()都是针对字符串类型处理的,传入的参数是char *型,或char[]型 gets()是输入字符串函数,puts()是字符串输出函数 例如:char *a;gets(a);或者:char a[10];gets(a);相当于:scanf("%s",a);输出函数:puts(a);相当于:printf("%s\\n",a);...

C语言 gets()函数自动换行,如何解释??
在程序中你用了gets(s),这个函数的意思就是接受你的输入,直到你输入一个White Space为止,如果你输入了回车(表示你已经输入完了),就会执行下一句的puts(s),然而你在控制台已经输入了一个回车(虽然没有输入到s里面,但是已经到了控制台里),所以光标会转到下一行,当执行puts(s)后,肯定会换行输...

c语言 gets函数 puts函数
1.puts(字符数组):将一个字符串(以'\\0'结束的字符序列)输出到终端。由于printf函数可以输出字符串(%S),因此puts函数不常用。用puts函数可以输出的字符串可以包含转义字符!在输出时将字符串结束标志'\\0'转换成'\\n',即输出完字符串后换行。2.gets(字符数组):从终端输入一个字符串到字符数组...

c语言中gets()和puts()的问题
但是你使用的时候最好还是不要超出你自己申请的空间,不然很可能会破坏它的数据结构!!所以能输进去很正常!!字符串输出的话要是不遇到'\\0'是不会停止的,你试试给abc[0]赋一个值,用puts(abc)应该照样会输出好多东西!!所以要把char数组当字符串输出的话,最好要在数组的结尾处加个'\\0'...

C语言当用户要求输入的字符串中含有空格时,应使用的输入函数是什么啊...
用gets()函数;gets从标准输入设备读字符串函数,其可以无限读取,不会判断上限,以回车结束读取,所以程序员应该确保buffer的空间足够大,以便在执行读操作时不发生溢出。功能 从stdin流中读取字符串,直至接受到换行符或EOF时停止,并将读取的结果存放在buffer指针所指向的字符数组中。换行符不作为读取串...

c语言scanf gets问题
scanf的%s格式接收字符串时,以空格或回车作为终止符。而gets只以回车作为终止符。你这里s1==aaa s2==bbb s3=ccc ddd所以输出会这样 puts输完最后输出'\\n',就是换行

C语言中 gets()和scanf 以及puts()和printf 的区别。
gets()和puts()是针对字符串的输入输出 scanf()则是按格式声明输入。printf()按格式声明输出

c语言中,gets()和puts()函数与getchar()与putchar()函数有何区别
puts()函数用来向标准输出设备(屏幕)写字符串并换行,其调用格式为:puts(s);其中s为字符串变量(字符串数组名或字符串指针),puts()函数的作用与语printf("%s\\n",s)相同。gets()函数用来从标准输入设备(键盘)读取字符串直到回车结束,但回车符不属于这个字符串。其调用格式为:gets(s);s为字符串变量...

相似回答