我正在尝试使用一个包含句子的字符串并通过单词将其分解以添加到名为wordList的链接列表类中。
在C ++中处理字符串时,你到达字符串末尾的指标是什么?在这里搜索发现c字符串是空终止的,有些用' \ 0'表示。但这些解决方案给我错误。
我知道还有其他方法可以做到这一点(比如扫描单个字符),但我对如何实现这一点很模糊。
void lineScan( string line) // Adds words to wordList from line of a file
{
istringstream iss(line);
string lineWord;
getline(iss, lineWord, ' ');
wrds.addWords( lineWord );
while( lineWord!= NULL )
{
getline(iss, lineWord, ' ');
wrds.addWords( lineWord );
}
}
答案 0 :(得分:1)
您可能希望跳过所有空格,而不是使用单个空格作为分隔符(您的代码将读取空标记)。
但是你在这里并没有真正处理字符串,特别是没有使用C字符串
由于您正在使用istringstream
,因此您正在寻找流的结尾,并且它的工作方式与所有内流一样。
void lineScan(string line) // Adds words to wordList from line of a file
{
istringstream iss(line);
string word;
while (iss >> word)
{
wrds.addWords(word);
}
}