我制作的这个程序让用户输入一个字符串和一个字符,然后显示该字符在字符串中出现的次数。出于某种原因,每次我运行这个程序时,它总是说该字符在字符串中出现 0 次。我需要一些帮助来确定问题并解决问题。谢谢!
#include <cstdlib>
#include <iostream>
#include <string>
#include <cctype>
using namespace std;
int main(int argc, char *argv[])
{
string input;
char character;
int charCount = 0;
cout << "Enter a string:" << endl;
getline(cin, input);
cout << "Enter a character:" << endl;
cin >> character;
int i = input.find(character);
while (i < 0)
{
charCount++;
i = input.find(character, (i + 1));
}
cout << character << " appears in the string, " << input << ", " << charCount << " times." << endl;
system("PAUSE");
return EXIT_SUCCESS;
}
最佳答案
你的问题是循环条件
int i = input.find(character); // if the character is in the string, it will return a number i > 0
while (i < 0) // will not enter loop
{
charCount++;
i = input.find(character, (i + 1));
}
此外,根据此逻辑,charCount 将随着您在字符串中遇到的每个字符而增加。
关于c++ - C++字符串程序错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35121179/