带可互换字母的字符串

时间:2014-04-08 18:13:47

标签: c++ string function

我的作业指示如下:

返回字符串"希望"的次数。出现在给定字符串中的任何位置,除非我们接受任何字母,因此" 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);

1 个答案:

答案 0 :(得分:5)

  

到目前为止我的代码显然是错误的

这是事实。我不会解释为什么你的代码是错误的,直接找到修复的描述。

您的main读取允许空格的字符串,这很好:代码的I / O部分不需要更改。

现在观察要检测单词"ho*e"*表示任何单个字符,在单词i的{​​{1}}位置,您需要检查{ {1}}是ww[i]'h'w[i+1]'o',索引w[i+3]是有效的。这变成了一个简单的检查:

'e'