
正文
c语言用gets输出数组,c语言用gets输入字符串
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
c语言的gets()能用在二维数组中吗,如果能,该怎么用
是的 如果要用于二维数组,需要取二维数组中的第一维。即 char a[100][100];gets(a[20]);这样可以。gets(a);理论上也能用,等效于a[0],但一些编译器会报错。 一般不这么写。
因为gets函数是以换行符为分隔,所以用一层循环即可读取一个二维数组。对于每行字符串,使用sscanf读取每个数。
gets 用于从标准输入设备读取一行字符,允许含空白,直到新行符(常说的回车换行)为止。
一维数组”可以,说它是一个一维数组的首指针也可以,实质都是一样的。用在gets(str[i]);这里,str[i]解释为第i行(从0行起算)数组的首地址或指针更好理解,因为gets函数的形参是一个一维数组的首地址。
gets(str)有边界溢出的可能。比如你的str定义只有80个char单元,但输入的时候却输入了80个以上的字符,那么就发生了溢出。c语言是不检查边界溢出的,编译不报错。但溢出会破坏内存中的数据,产生不可预料的后果。
实际输入一行可以用gets函数实现,判断gets函数的返回值可知道是否结束输入(比如输入Ctrl+Z的组合键结束),每输入一行,记录的行数加1,最后可得到实际输入的行数和按行号顺序保存在input数组中的所有字符串。
相关问答
Q1: C语言gets函数的用法,能用代码举个例子么
c语言,gets()函数用来从标准输入设备(键盘)读取字符串直到换行符结束,但换行符会被丢弃,然后在末尾添加\0字符。其调用格式为:gets(s)。其中s为字符串变量(字符串数组名或字符串指针)。
scanf不能接受空格、制表符Tab、回车等;而gets能够接受空格、制表符Tab和回车等;相同点:字符串接受结束后自动加。
char *gets(char *str);这个函数很简单,只有一个参数。参数类型为 char* 型,即 str 可以是一个字符指针变量名,也可以是一个字符数组名。
Q2: gets在c语言中什么意思
gets从标准输入设备读字符串函数,其可以无限读取,不会判断上限,以回车结束读取,所以程序员应该确保buffer的空间足够大,以便在执行读操作时不发生溢出。
gets 是 c语言标准输入函数,功能是 从键盘输入 读入 一行字符串,存放到 password1 里。这里 的 password1 顾名思义 是 口令,密码。即 从键盘输入 读入 password。
c语言,gets()函数用来从标准输入设备(键盘)读取字符串直到换行符结束,但换行符会被丢弃,然后在末尾添加\0字符。其调用格式为:gets(s)。其中s为字符串变量(字符串数组名或字符串指针)。
C语言中gets函数与getchar函数的区别 函数输入方面 gets()函数用来从标准输入设备(键盘)读取字符串直到回车结束,但回车符不属于这个字符串。
gets()用于从标准输入流stdin读入一个整行(以 或EOF)结束,写入ptr指向的字符数组,并返回这个指针;出错或遇到文件结束时则返回NULL。行末的 从流中取出,但不写入数组。gets()不检查被写入的数组大小。
Q3: 在C语言中,用gets输入了一个字符串,怎么用数组它?
1、字符串在存储的时候结尾一定是\0的。例如字符串“123”,在内存里面实际上是“123\0”。可能lz是调用如fgets等以一行为输入(输出)单位的函数,所以会认为字符串以\n或\r结尾的。
2、gets返回值是char *,你一定要用它,可以用char * 接收,然后迭代把char型数字转int型存储。但这样要判断还要处理位数,不麻烦么。直接迭代scanf接收存储到int a,最后用判断把回车符号\n过滤掉,不简单么。
3、因为gets函数是以换行符为分隔,所以用一层循环即可读取一个二维数组。对于每行字符串,使用sscanf读取每个数。
4、char *gets(char *str);这个函数很简单,只有一个参数。参数类型为 char* 型,即 str 可以是一个字符指针变量名,也可以是一个字符数组名。
5、行末的 从流中取出,但不写入数组。gets()不检查被写入的数组大小。
6、gets(s);读取字符串时,首字符存放在s[0]中,接着依次存放在s[1],s[2],……中。读取到回车符时,将空字符\0存入s数组中,作为字符串结尾符。用此函数时,必须保证s数组足够大。
Q4: C语言for循环中用gets输入字符数组的问题
gets 用于从标准输入设备读取一行字符,允许含空白,直到新行符(常说的回车换行)为止。
strlen(str));if(str[0]==f) break;} return 0;} scanf输入后那个回车被gets(str)接收了,所以下次遇到gets就不再等待你输入,可以用getchar()把scanf输入后的回车接收就好了。
gets()会将回车一起读进字符数组里,而scanf(%s)不会读回车 scanf(%s)会将空格和回车留在输入流里,下一次读取,读输入流里的下一个字符。你开一下debug调试看看,就知道了。
那么当你循环的时候,如果是cs[i],gets(cs[i])就是像每一行里面写入字符串,写完一行,换一行在写 ,而写成gets(cs)的话,则永远都是从第一行第一个元素开始写入,后面的就会覆盖前面的元素。
字符串在存储的时候结尾一定是\0的。例如字符串“123”,在内存里面实际上是“123\0”。可能lz是调用如fgets等以一行为输入(输出)单位的函数,所以会认为字符串以\n或\r结尾的。
Q5: c语言中gets的用法
1、在前面从键盘输入字符串是使用 scanf 和 %s。其实还有更简单的方法,即使用 gets() 函数。该函数的原型为:include stdio.h char *gets(char *str);这个函数很简单,只有一个参数。
2、gets()用于从标准输入流stdin读入一个整行(以 或EOF)结束,写入ptr指向的字符数组,并返回这个指针;出错或遇到文件结束时则返回NULL。行末的 从流中取出,但不写入数组。gets()不检查被写入的数组大小。
3、c语言,gets()函数用来从标准输入设备(键盘)读取字符串直到换行符结束,但换行符会被丢弃,然后在末尾添加\0字符。其调用格式为:gets(s)。其中s为字符串变量(字符串数组名或字符串指针)。
c语言用gets输出数组的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于c语言用gets输入字符串、c语言用gets输出数组的信息别忘了在本站进行查找喔。







