我已经坚持了很长时间,我只是想不出解决这个问题的方法。所以,我有一个包含术语列表的数组,每个术语都将与输入文件进行比较,然后如果匹配,就会有一个输出显示“找到匹配”......我遇到的一个问题是strncasecmp 仅比较该行的前 n 个字符。这意味着我每次都必须将数组向左移动,直到我到达终点。
这是我到目前为止想出的......
while (fgets(line, 256, ifp) != NULL){
for (i = 0; i < numberTerms; i++){
len = strlen(term[i]);
for (lineStep = 0; lineStep < (strlen(line) - 1); lineStep++){
if (line[lineStep] == '\0')
break;
if (strncasecmp(line, term[i], len) == 0)
printf("Match found!\n");
for (j = 0; j < (strlen(line)-1); j++)
line[lineStep] = line[lineStep + 1];
}
}
}
这只会打印“找到匹配!” 一次而不是它需要的 5 次。我究竟做错了什么?另外,如果有更简单的方法来搜索字符串,请告诉我。