将字符串中以“#”开头的单词提取到字符串流中 - C++

Extracing words that start with '#' from a string into a stringstream- C++

我正在尝试编写一个程序,该程序将 return 字符串中以符号 # 开头的单词。 例如: 诸如“我喜欢#tacos 和#pizza”之类的字符串会 return:#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;
}

但是,这只是 return 一个以标签开头的词。关于我可以在代码中更改什么的任何帮助?

你只需要用frontmyString[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;
}

Demo