问题描述
我正在尝试编写一个程序,该程序将从字符串中返回以符号 # 开头的单词。 例如: 诸如“I like #tacos and #pizza”之类的字符串将返回:#tacos #pizza
这是我当前的代码:
int main(void){
string myString = "I like #tacos and #pizza";
std::istringstream iss(myString);
while(iss >> myString){
int i = 0;
if(myString[i] == '#'){
iss >> myString;
}
i++;
}
std::cout << myString;
}
然而,这只会返回一个以主题标签开头的词。关于我可以在代码中更改的内容有什么帮助吗?
解决方法
您只需要使用 front
或 myString[0]
检查字符串的第一个字符,并在循环中打印输出。您的原始代码最多只打印一次,因此我将打印语句移到循环中。
#include <iostream>
#include <sstream>
#include <string>
int main(void) {
std::string myString = "I like #tacos and #pizza";
std::istringstream iss(myString);
while (iss >> myString) {
if (myString.front() == '#') {
std::cout << myString << std::endl;
}
}
return 0;
}