作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一首诗,例如:
Roses are red
Violets are blue
Sugar is sweet
And so are you
只用/n 分隔我需要得到每一行的最后一个词,最后一个词找到一个 friend 建议使用这个:
string lastWord(string line)
{
return line.substr(max(line.rfind(" "), 0));
}
但是如何将文本拆分成行呢?
最佳答案
But what about splitting text into lines?
答案取决于文本最初的位置:如果整个文本都在一个文件中,使用ifstream
;如果文本在 string
中,请使用 stringstream
。在这两种情况下,使用 getline
在循环中逐行从文本中提取行:
string poem = "Roses are red\n\
Violets are blue\n\
Sugar is sweet\n\
And so are you";
stringstream ss(poem);
string line;
while (getline(ss, line)) {
cout << lastWord(line) << endl;
}
此外,您的 lastWord
函数有一个差一错误:您应该简单地将 1 添加到 rfind
的结果,而不是使用 max
,像这样:
string lastWord(string line)
{
return line.substr(line.rfind(" ")+1);
}
这将从返回的单词中删除初始空格。
关于c++ - 如何将文本(诗歌)分成几行(字符串/字符[])并找到每一行的最后一个词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13585544/
我是一名优秀的程序员,十分优秀!