如果需要录入字符串,文件,常用gets()函数,但是函数会储存键盘输入的或者文本中本就存在的换行符,下面这个函数在该函数的基础上将换行符替换成空字符,将多行字符串合成一行,方便字符串的规范储存和后续操作,且可以检查输入是否为空。
//将换行符替换成空字符
char* s_gets(char*st, int n)
{
char* ret_val;
char* find;
//第一个指针作为函数返回值传递给主调函数,返回录入字符串的储存位置
//第二个指针用来查找换行符
ret_val = fgets(st, n, stdin);//调用fgets函数
if (ret_val)//检查是否成功输入
{
find = strch(st, '\n');//查找换行符的位置,将地址赋给find指针
if (find)//如果存在换行符
*find = '\0';//将换行符替换为空字符
else
while (getchar() != '\n')//如果没有换行符,吸收其他字符直到出现换行符
continue;
}
return ret_val;
}
关于getchar()函数,strch()函数,fgets()函数的参数含义及详细用法可以参考主页里文章“处理字符串的常见函数”