gpt4 book ai didi

c++ - 在 C++ 中查找非空白字符

转载 作者:行者123 更新时间:2023-11-30 02:25:43 26 4
gpt4 key购买 nike

对于我的作业,我必须调用一个函数来获取用户输入并吐出非空白字符的数量。在程序中,我有这段代码:

int GetNumOfNonWSCharacters(const string givenText) {
int counter;
for (int i = 0; i < givenText.length(); i++) {
if (givenText.at(i) != ' ') {
counter++;
}
}
return counter;
}

当我返回计数器整数时,这是我以字符串 sampleText 作为输入输出它的方式:

if (menuInput == 'c' || menuInput == 'C') {
cout << "Number of whitespaces: " << GetNumOfNonWSCharacters(sampleText) << endl;
}

它会返回类似 1231341235 或类似内容的答案。现在,当我将此代码键入不同的文件时,可以肯定它是相同的,我每次都会得到正确的结果:

int NumNonWhitespaces(const string userInput) {
int counter;
for (int i = 0; i < userInput.length(); i++) {
if (userInput.at(i) != ' ') {
counter++;
}
}
return counter;
}

int main() {
string userString;
cout << "Enter some text" << endl;
getline(cin, userString);
cout << "You entered: " << userString << endl;
cout << NumNonWhitespaces(userString);
return 0;
}

有没有人能解决这个问题?

最佳答案

使用 STL count 可以更简单地计算非空格的数量。算法:

#include <iostream>
#include <string>
#include <algorithm>

using namespace std;

int main() {
string userString;
cout << "Enter some text" << endl;
getline(cin, userString);
cout << "You entered: " << userString << endl;

//count the number of white spaces
int numberOfWhiteSpace = count(userString.begin(), userString.end(), ' ');

//substruct that number from the total length of your string
cout << "number of non-whitespace: " << userString.length() - numberOfWhiteSpace;

return 0;
}

但在您的解决方案中,您必须将变量 counter 初始化为 0

关于c++ - 在 C++ 中查找非空白字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43824372/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com