我正在编写一些代码来使用fgets读取stdin上的文本文件,fgets将第一行和第二行中的两条相邻行一直比较到最后一行,最后一行是相等的。我的问题是它一直有效,直到最后的案例。
例如,让我们说我们的文本文件包含以下内容:
one
two
three
three
four
four
当我在最后2行使用strcmp时,返回-1,当我在两个' 4上使用strlen时,我分别获得了5和6。
那么多余的角色来自何处以及如何克服这一点,以便我可以进行正确的字符串比较并让strcmp返回0?任何提示都会很棒!
答案 0 :(得分:0)
您是否尝试在读取每一行后删除保存的字符串中的'\ n'字符?
fgets(line, SIZE, FILE) // Save line readed inside var line
line[strcspn(line, "\n")] = '\0'; // Remove '\n' inside stored var
删除'\ n'char可以解决您的问题。