C语言字符串处理:从输入到数值转换的全面指南
1. 读取包含换行符的字符串
在处理字符串输入时, gets_s()
函数存在一个问题。当我们按回车键结束一行输入时,会输入一个换行符,但 gets_s()
不会将这个换行符存储在输入数组中。这就导致如果不在一行的末尾或下一行的开头添加空格,前一行的最后一个单词会和下一行的第一个单词连接在一起,就像它们是一个单词一样,使得输入过程显得不自然。
为了解决这个问题,我们可以使用 fgets()
函数。这个函数会将换行符存储在输入的字符串中,它是一个更通用的输入函数,既可以用于读取文件,也可以用于读取键盘输入。
fgets()
函数需要三个参数:
- 输入数组的地址,例如 str
。
- 要读取的最大字符数,通常是 str
的大小。
- 输入源,对于键盘输入来说是 stdin
。
该函数最多读取第二个参数指定的字符数减 1 个字符,并在末尾追加 \0
。按下回车键会使 \n
存储在 str
中,这会结束输入操作,同时也会存储一个 \0
来终止字符串。
下面是一个示例代码,展示了如何使用 fgets()
函数:
// Program 6.7A Rea