c语言gets函数
#include"stdio.h"main(){charst[15];printf("inputstring:\n");get(st);put(st);}输入:Iamas...
#include"stdio.h"
main()
{char st[15];
printf("input string :\n");
get(st);
put(st);}
输入:I am a student.这里正好是15个,请问字符串不是总是以'\0'作为串的结束符,那么这里st[15]应该改成st[16]才是正确的,请问是不是书上写错了 展开
main()
{char st[15];
printf("input string :\n");
get(st);
put(st);}
输入:I am a student.这里正好是15个,请问字符串不是总是以'\0'作为串的结束符,那么这里st[15]应该改成st[16]才是正确的,请问是不是书上写错了 展开
11个回答
展开全部
你的观点是正确的!
不过不知道你的代码中 get, put 是不是笔误。
另外不建议使用 gets, 不安全,容易发生这种溢出 , 推荐 fgets 函数
不过不知道你的代码中 get, put 是不是笔误。
另外不建议使用 gets, 不安全,容易发生这种溢出 , 推荐 fgets 函数
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
gets函数的头文件:#include <stdio.h>
gets()函数用于从缓冲区中读取字符串,其原型如下:
char *gets(char *string);gets()函数从流中读取字符串,直到出现换行符或读到文件尾为止,最后加上NULL作为字符串结束。所读取的字符串暂存在给定的参数string中。
【返回值】若成功则返回string的指针,否则返回NULL。
注意:由于gets()不检查字符串string的大小,必须遇到换行符或文件结尾才会结束输入,因此容易造成缓存溢出的安全性问题,导致程序崩溃,可以使用fgets()代替。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
15就可以了。因为STR(15)有16个字符:STR(0)~STR(15)。手机打不出中括号,见谅。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
亲,换行符是会被丢弃的。百度百科里面不是有么。所以这个语句应该还是15.书上没错,是你错了。http://baike.baidu.com/view/1457521.htm 看【4】
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
"I am a student"+'\0' =15个
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询