在C语言中:读取输入字符串,在字符数组中查找
在编写另一个程序时,它读取一个txt文件,并将所有字母字符和空格(作为\0)存储在一个字符数组中,而忽略其他所有内容。这部分是有效的 现在我需要它做的是读取用户输入的字符串,并在数组中搜索该字符串,然后在每次出现时打印该单词。我在C语言中的I/O方面很糟糕,如何读取字符串然后在字符数组中找到它在C语言中:读取输入字符串,在字符数组中查找,c,C,在编写另一个程序时,它读取一个txt文件,并将所有字母字符和空格(作为\0)存储在一个字符数组中,而忽略其他所有内容。这部分是有效的 现在我需要它做的是读取用户输入的字符串,并在数组中搜索该字符串,然后在每次出现时打印该单词。我在C语言中的I/O方面很糟糕,如何读取字符串然后在字符数组中找到它 #include <stdio.h> ... char str [80]; printf ("Enter your word: "); scanf ("%s",str); char*
#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);
}
...
char-str[80];
printf(“输入您的单词:”);
scanf(“%s”,str);
char*pch=strstrstr(fileData,str);
while(pch!=NULL)
{
printf(“位于%d\n”,pch fileData+1);
pch=strstrstr(pch+1,str);
}
一般来说,可以找到的C字符串函数列表的格式是str*或strn*,具体取决于需求。一个for循环,另一个for循环(称为嵌套循环)。检查数组中的所有字母,对于每个字母,检查输入字符串中的所有字母,并找出数组的该部分是否与输入字符串匹配。如果有,请将其打印。+1表示在正确的轨道上。如果想考虑第一个空间是输入字符串的结尾,SCANF的“%s”格式是很好的。如果需要整行,则需要“%[^\n]”。然后,您应该确保通过放置ala
(“%.*s”,sizeof str,str)
读取的字符不超过80个。而且,您应该使用strstr()而不是strchr()来查找子字符串。@mikecavs-Yes。这是带有文件内容的char*。pInFile=fopen(填充名,“r”);fread(&fileData,缓冲区大小,1,pInFile)@ErikW否-格式不是正则表达式<代码>“%.*s”表示接受最大字符串长度参数,后跟指向字符串缓冲区参数的指针。格式在.1中解释。基本上是重复他的要求。2.对于初学者来说,这是过分了吗?strstr怎么了?我在重复他的第二段,在他说了他已经做过的事情之后,“现在我需要做的是…”这一部分,我没有重复之前的任何内容。此外,我还提出了一个更完整的解决方案,它可以处理所有情况并找到所有可能的匹配项。最后,我提供了以str*开头的所有C系列字符串函数的简单替代方案,因此我在上面给出了答案。