大佬 帮我看下这段代码能干吗 看不懂啊

heheda7918 2017-07-21 04:48:55
char * s_gets(char * st,int n)
{
char * ret_val;
char * find;

ret_val = fgets(st, n, stdin);
if(ret_val)
{
find = strchr(st, '\n');
if(find)
*find = '\0';
else
while(getchar() != '\n')
continue;
}
return ret_val;
}
...全文
216 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
战在春秋 2017-07-21
  • 打赏
  • 举报
回复
看看应该怎么调用这个函数
int main()
{
	char *result;
	char src[100];
	result = s_gets(src, 8); //接收最多7个字符,因为还需要一个字符'0'来标记字符串结束

	return 0;
}
再看一下输入样例
1 输入hello,然后回车
   src结果为"hello",

2 输入helloworld,然后回车
  src结果为"hellowo"
s_gets如何实现接收不多于指定个数的字符,并且在未尾加上'0',需要参考 https://docs.microsoft.com/en-us/cpp/c-runtime-library/reference/fgets-fgetws 并结合程序代码理解
赵4老师 2017-07-21
  • 打赏
  • 举报
回复
从标准输入中读长度最多为n个字符的字符串,以一个或多个\n结尾(如果有)。 返回NULL或指向字符串的指针。

3,881

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 其它技术问题
社区管理员
  • 其它技术问题社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧