本文最后更新于663 天前,其中的信息可能已经过时,如有错误请发送邮件到echobydq@gmail.com
/*char *s_gets(char *st, int n)是为了获取字符st中的n个元素,
并将其结果返回为s_gets的字符指针。功能类似于fgets函数,
但它解决了fgets函数会读取'\n'的问题。*/
#include <stdio.h>
#include <string.h>
char * s_gets(char *st, int n);
int main()
{
char name[20];
printf("输入姓名\n");
s_gets(name,20);
printf("姓名为:%s\n",name);
return 0;
}
char * s_gets(char *st, int n)
{
char * ret_val;
char * find;
//表示从标准输入流中读取n-1个元素到字符st中,再将
ret_val = fgets(st,n,stdin); //再将指针ret_val指向指针st
if (ret_val) //if语句为了避免fgets函数返回值为NULL的情况
{
find = strchr(st, '\n'); //查找换行符
if (find)
*find = '\0'; //替换为空字符
else
while (getchar() != '\n') //清除IO缓冲区
continue;
}
return ret_val;
}