#include <stdio.h>
#include <string.h>
char* s_gets(char* dest, int n)
{
char* ret_val = NULL;
int i = 0;
ret_val = fgets(dest, n, stdin);
if (ret_val)
{
while (dest[i] != '\n' && dest[i] != '\0')
i++;
if (dest[i] == '\n')
{
dest[i] = '\0';
}
else
{
while (getchar() != '\n')
continue;
}
}
return s_gets
}
dest:字符串存储地址
n:读入字符最大数量, 实际字符长度应为n - 1。 末尾1位空字符'\0'。
内部调用fgets, 顺序读取字符串, 直到读取到换行符或空字符'\0'。
if 读到换行符,替换成空字符'\0'。
if 读到空字符, 舍弃剩下的字符。getchar只读取,不存储,知道读到换行符。