将字符串中以“#”开头的单词提取到字符串流中 - 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 一个以标签开头的词。关于我可以在代码中更改什么的任何帮助?
你只需要用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;
}
我正在尝试编写一个程序,该程序将 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 一个以标签开头的词。关于我可以在代码中更改什么的任何帮助?
你只需要用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;
}