gpt4 book ai didi

c++ - 函数中的 while 循环出现 ‘)’ token 错误之前的预期主表达式

转载 作者:行者123 更新时间:2023-12-03 07:39:28 24 4
gpt4 key购买 nike

我的问题是,我在 NumWords 函数的 while 循环中的变量“字符串”上不断收到“在 ')' 标记之前的预期主表达式”错误。该变量在“istringstream inSS(string);”中工作正常行,但是当我尝试编译代码时,下一行会产生该错误。请帮助我很困惑,这让我发疯。

#include <iostream>
#include <sstream>
#include <string>
using namespace std;
//函数原型(prototype)
int NumWords(const string&);

int NumNonWSCharacters(const string&);

void CharReplace(string&, char, char);

char PrintMenu();
//主功能
int main () {

//Variables
string text;

//Input & Output original
cout << "Enter a line of text: ";
getline(cin, text);
cout << "\n";
cout << "You entered: " << text << "\n";

//How many words
cout << NumWords(text);

}
//统计字符串中的单词个数
int NumWords(const string&) {
int count = 0;
istringstream inSS(string);
while (inSS >> string) {

count++;

}


}
//计算字符串中的字符数(不包括空格)
int NumNonWSCharacters(const string&) {

cout << "FINISH\n";

}
//用给定字符串中的一个字符替换另一个字符
void CharReplace(string&, char, char) {

cout << "FINISH\n";

}
//打印菜单
char PrintMenu() {

cout << "FINISH\n";

}

最佳答案

供你引用。祝你好运。
我将单词保存在数组单词中,即字符串 vector 。多个空格或非字符字母都被排除在外。每个单词由两个整数 n1 和 n2 定义,它们固定单词的开头和结尾。一个词被定义为一段连续的字符。这部分是使用 string::substring(n1, n2-n1) 和 push_back 提取到 vector 的。

#include <iostream>
#include <sstream>
#include <string>
#include <vector>
typedef std::vector<std::string> WordArray;
int NumWords(const std::string&, WordArray&);
int NumNonWSCharacters(const std::string&);
int main ()
{
std::string text;
WordArray words;
//Input & Output original
std::cout << "Enter a line of text: ";
std::getline(std::cin, text);
std::cout << "\n";
std::cout << "You entered: " << text << "\n";
//How many words
std::cout << "Number of characters = " <<NumNonWSCharacters(text) << std::endl;
int nword = NumWords(text, words);
std::cout << "Number of words = " << nword << std::endl <<std::endl;
for (int i=0; i<words.size(); i++) std::cout <<"word[" << i <<"] = " << words[i] << std::endl;
return 0;
}
int NumNonWSCharacters(const std::string& str)
{
int count = 0;
std::istringstream inSS(str);
char a;
while (inSS >> a)
{
if (a!=' ') count++;
}
return count;
}
#include <cctype>
int NumWords(const std::string& str, WordArray&word)
{
int nword = 0, n1, n2;
char a;
n2 = n1 = 0;
while (n1 < str.size() )
{
if ( std::isalpha(str[n1]) )
{
n2 = n1 + 1;
while ( std::isalpha(str[n2]) ) {n2++;}
word.push_back(str.substr(n1, n2-n1));
n1 = n2+1;
}
else
{
n1++;
while ( !std::isalpha(str[n1]) ){n1++;}
}
}
return word.size();
}
enter image description here

关于c++ - 函数中的 while 循环出现 ‘)’ token 错误之前的预期主表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64820541/

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