gpt4 book ai didi

c++ - 带有多个定界符的字符串流

转载 作者:太空狗 更新时间:2023-10-29 21:19:30 25 4
gpt4 key购买 nike

这是另一个我似乎找不到答案的问题,因为我能找到的每个例子都使用 vector ,而我的老师不让我们在这门课上使用 vector 。

我需要使用(任意数量的)空格一次一个单词地阅读一本书的纯文本版本
' ' 和(任意数量的)非字母字符作为分隔符;所以任何数量的任何空格或标点符号都需要分隔单词。当只需要使用空格作为分隔符时,我是这样做的:

while(getline(inFile, line)) {
istringstream iss(line);

while (iss >> word) {
table1.addItem(word);
}
}

编辑:读入的文本示例,以及我需要如何将其分开。

"If they had known;; you wished it, the entertainment.would have"

第一行需要如何分隔:

If

they

had

known

you

wished

it

the

entertainment

would

have

文本将至少包含所有标准标点符号,但也包括省略号 ... 双破折号 --

一如既往,提前致谢。

编辑:

所以使用第二个字符串流看起来像这样?

while(getline(inFile, line)) {
istringstream iss(line);

while (iss >> word) {
istringstream iss2(word);

while(iss2 >> letter) {
if(!isalpha(letter))
// do something?
}
// do something else?
table1.addItem(word);
}
}

最佳答案

我还没有测试过这个,因为我现在面前没有 g++ 编译器,但它应该可以工作(除了轻微的 C++ 语法错误)

while (getline(inFile, line))
{
istringstream iss(line);

while (iss >> word)
{
// check that word has only alpha-numeric characters
word.erase(std::remove_if(word.begin(), word.end(),
[](char& c){return !isalnum(c);}),
word.end());
if (word != "")
table1.addItem(word);
}
}

关于c++ - 带有多个定界符的字符串流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27095463/

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