我是编程新手。请帮我解决这个程序:
程序获取一个字符串和一个单词,并使用c \ c ++检查字符串中该单词的出现次数。
谢谢你变化多了
这是我的第一篇文章。答案 0 :(得分:0)
如果您想在字符串中找到pattern or word
的出现次数,可以使用KMP算法。
它将为您提供字符串中单词出现的总次数。
示例:
string = "abaabcabaabd"
word = "aba"
输出为2, aba abc aba abd
复杂性:O(n)
其中n
是字符串的长度
更新1:
我实际上并不知道你在说什么问题:(
但是,如果你想计算这个例子中的单词数量:
string : hi how are you how are hi how
word : how
how
包含3次。 hi *how* are you *how* are hi *how*
如果你的问题是这样,那么这个程序将会:
#include <bits/stdc++.h>
using namespace std;
int main()
{
string str,word;
getline(cin,str);
getline(cin,word);
stringstream ss(str);
int cnt=0;
while(ss>>str)
{
if(str==word)
cnt++;
}
cout<<cnt<<"\n";
return 0;
}
更新2:
使用指针解决同样的问题:
#include <bits/stdc++.h>
using namespace std;
int main()
{
char str[100],word[100];
gets(str);
gets(word);
char *token=strtok(str," ");
int cnt=0;
while(token!=NULL)
{
if(strcmp(token,word)==0)
cnt++;
token=strtok(NULL," ");
}
cout<<cnt<<"\n";
return 0;
}