编写另一个程序,它读取一个txt文件,并将所有字母字符和空格(如\ 0)存储在一个char数组中,并忽略其他所有内容。这部分有效。
现在我需要它做的是读取用户输入的字符串,并在数组中搜索该字符串,然后每次出现时打印该字。在C中的I / O非常可怕,你怎么读取字符串然后在char数组中找到它?
答案 0 :(得分:2)
#include <stdio.h>
...
char str [80];
printf ("Enter your word: ");
scanf ("%s",str);
char* pch=strstr(fileData,str);
while (pch!=NULL)
{
printf ("found at %d\n",pch-fileData+1);
pch=strstr(pch+1,str);
}
答案 1 :(得分:0)
同时读取用户输入的字符串作为char数组(因此C语言中的字符串基本上都是char *)
使用像Boyer-Moore或Knutt-Morris-Pratt(更常见的KMP)这样的字符串匹配算法 - 如果您喜欢这些的C实现,请使用google - 因为它们很整洁,经过测试和测试搜索字符串以寻找子串和模式匹配的方法。
对于这些indexOf中的每一个案例,打印找到单词的位置可能吗?或者如果您愿意,可以选择出现次数。
一般来说,找到here的C字符串函数列表的格式为str *或strn *,具体取决于要求。
答案 2 :(得分:0)
另一个for循环中的一个for循环(称为嵌套循环)。遍历数组中的所有字母,并为每个字母输入输入字符串中的所有字母,并查明数组的该部分是否与输入字符串匹配。如果是,请打印出来。