首先讲一下 C 的库函数 fgets()。
char *fgets(char *str, int n, FILE *stream);
-
str:指向存储输入字符串的缓冲区的指针。
-
n:要读取的最大字符数(包括终止符 )。
-
stream:输入流,通常是 stdin。
fgets 函数会读取最多 n-1 个字符,并在末尾添加一个空字符 。如果读取的行包含换行符 n,fgets 也会将其也包含在内。
如果成功,返回指向字符串的指针。如果到达文件末尾或者没有读取到任何字符,则返回空指针。
假设用户输入了一行文本 "Hello Worldn",fgets 会读取并存储如下内容:
str = "Hello Worldn "
为了去掉换行符,需要找到字符串的最后一个字符,并将其替换为 。
首先计算字符串的长度:
char* result = fgets(dest, maxLen, stdin);
int len = strlen(result);
strlen 函数返回字符串的实际长度,不包括终止符 。对于 "Hello Worldn",strlen 返回 12。
然后检查是否有换行符:
if (len > 0 && result[len - 1] == 'n') {
result[len - 1] = ' ';
}
-
len > 0
确保字符串非空。 -
result[len - 1] == 'n'
检查字符串的最后一个字符是否是换行符。 -
如果是换行符,将其替换为
评论