字符串程序中C++错误

Error in C++ String Program

本文关键字:错误 C++ 程序 字符串      更新时间:2023-10-16

我正在制作的这个程序让用户输入一个字符串和一个字符,然后显示该字符在字符串中出现的次数。出于某种原因,每次我运行这个程序时,它总是说该字符在字符串中出现 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 将随着您在字符串中遇到的每个字符而增加。