我的作业指示如下:
返回字符串"希望"的次数。出现在给定字符串中的任何位置,除非我们接受任何字母,因此" hode"和" hooe"计数。
我正在努力弄清楚如何使第三个字母等于任何东西,并且仍然让程序确定它是正确的。
到目前为止,我的代码显然是错误的,但不好包括它。
一个大问题是我不能告诉数组检查它是否与字符串匹配。
int wordsFunction(string words)
{
int num = 0;
for(int i = 0; i < words.length(); i++)
{
if(words[i] == "Hope" || words[i] == "hope")
{
num++;
}
}
return num;
}
main()
{
string words;
cout << "Enter a string: ";
getline(cin, words);
cout << wordsFunction(words);
答案 0 :(得分:5)
到目前为止我的代码显然是错误的
这是事实。我不会解释为什么你的代码是错误的,直接找到修复的描述。
您的main
读取允许空格的字符串,这很好:代码的I / O部分不需要更改。
现在观察要检测单词"ho*e"
,*
表示任何单个字符,在单词i
的{{1}}位置,您需要检查{ {1}}是w
,w[i]
是'h'
,w[i+1]
是'o'
,索引w[i+3]
是有效的。这变成了一个简单的检查:
'e'