<分区>
首先,我已经尝试使用这里提到的 strstr()
方法,但这对我要解决的问题不起作用。
我要获取用户输入的字符串(目标字符串),可以是一个词,也可以是一个完整的句子。然后逐行扫描输入文本文件并检查该输入字符串是否存在于文件的任何行中。如果是,则将相应的文本文件行号和可以找到目标字符串的全文文件行打印到屏幕上。
我在使用strstr(line, targetString)
方法时遇到的问题如下:
假设文件中有一句话,“我用一只松鼠用力拍打那条鱼”。然后,我输入我的目标字符串,“我在猫墓地里嬉戏,不屈不挠的欢乐。”它将显示目标字符串已匹配,大概是因为它只是找到与“I”的匹配项。但是,仅当目标字符串的逐字匹配与文本文件行中的某个子字符串匹配时,我才需要它匹配。
有什么想法可以解决这个问题吗?提前致谢!
代码:
FILE *inputFile = fopen(fileName, "r");
i = 1;
while (fgets(line, sizeof line, inputFile) != NULL)
{
if ((strlen(line) != 1) && (strstr(line, targetString)))
{
printf("Line %d: ", i);
printf("%s\n\n", line);
}
i++;
}