我希望能够获取用户输入并为给定的字母赋值.我想我已经把那部分搞定了,现在问题就是返回价值.
#include <iostream>
#include <string>
using namespace std;
int ch2n(string word);
int main()
{
string inputWord;
cout << "Type Word: ";
cin >> inputWord;
cout << ch2n(inputWord);
}
int ch2n(string word)
{
int total = 0;
for(int i = 0;i != word.size(); i++)
{
if(word.find(i) == 'a' || word.find(i) == 'A')
{
total += 1;
}
}
return total;
}
Run Code Online (Sandbox Code Playgroud)
当我将总数声明为0时,返回值始终为0,但是当我不声明它时,我得到的返回值为229 ....等随机数.
我想word.find(i)可能不是你想要的那个.要访问字符串中的特定字符,请使用方括号,即:word[i]而不是word.find(i).
如果您不初始化它(设置其值),则使用它是未定义的行为,并且可以返回任何随机值 - 包括 0
没有构造函数的类型,例如int只会分配空间并具有未定义的值,通常基于先前使用时该位置发生的任何情况。
word.find不做你认为它做的事,它正在i寻找word
你只想使用word[]:
if(word[i] == 'a' || word[i] == 'A')
Run Code Online (Sandbox Code Playgroud)
另外,您可能想在行std::endl尾添加cout