在C中:读取输入字符串,在char数组中找到它

时间:2011-01-28 01:07:05

标签: c

编写另一个程序,它读取一个txt文件,并将所有字母字符和空格(如\ 0)存储在一个char数组中,并忽略其他所有内容。这部分有效。

现在我需要它做的是读取用户输入的字符串,并在数组中搜索该字符串,然后每次出现时打印该字。在C中的I / O非常可怕,你怎么读取字符串然后在char数组中找到它?

3 个答案:

答案 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)

  1. 同时读取用户输入的字符串作为char数组(因此C语言中的字符串基本上都是char *)

  2. 使用像Boyer-Moore或Knutt-Morris-Pratt(更常见的KMP)这样的字符串匹配算法 - 如果您喜欢这些的C实现,请使用google - 因为它们很整洁,经过测试和测试搜索字符串以寻找子串和模式匹配的方法。

  3. 对于这些indexOf中的每一个案例,打印找到单词的位置可能吗?或者如果您愿意,可以选择出现次数。

  4. 一般来说,找到here的C字符串函数列表的格式为str *或strn *,具体取决于要求。

答案 2 :(得分:0)

另一个for循环中的一个for循环(称为嵌套循环)。遍历数组中的所有字母,并为每个字母输入输入字符串中的所有字母,并查明数组的该部分是否与输入字符串匹配。如果是,请打印出来。