C - 如何将strcmp用于文本文件

时间:2018-04-07 12:13:34

标签: c strcmp strlen

我正在编写一些代码来使用fgets读取stdin上的文本文件,fgets将第一行和第二行中的两条相邻行一直比较到最后一行,最后一行是相等的。我的问题是它一直有效,直到最后的案例。

例如,让我们说我们的文本文件包含以下内容:

one
two
three
three
four
four

当我在最后2行使用strcmp时,返回-1,当我在两个' 4上使用strlen时,我分别获得了5和6。

那么多余的角色来自何处以及如何克服这一点,以便我可以进行正确的字符串比较并让strcmp返回0?任何提示都会很棒!

1 个答案:

答案 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可以解决您的问题。