如何像在python中一样在C++中分割字符串?
所以在python中你可以像这样拆分字符串:
string = "Hello world!"
str1 , str2 = string.split(" ")
print(str1);print(str2)
它打印:
Hello
world!
我如何在 C++ 中做同样的事情?这不是有用的,在 C++ 中使用字符串分隔符(标准 C++)解析(拆分)一个字符串,我需要将它们拆分,以便我可以像打印 str1 一样单独访问它们。
回答
如果您的标记器始终是空格 ( " ") 并且您可能不会使用其他字符 (例如s.split(',')) 来标记字符串,则可以使用字符串流:
#include <iostream>
#include <string>
#include <stringstream>
int main() {
std::string my_string = " Hello world! ";
std::string str1, str2;
std::stringstream s(my_string);
s>>str1>>str2;
std::cout<<str1<<std::endl;
std::cout<<str2<<std::endl;
return 0;
}
请记住,此代码仅建议用于空白令牌,如果您有许多令牌,则可能无法扩展。输出:
Hello
World!
- 好多了,谢谢。反对票转换为赞成票。比一堆繁琐的拆分代码要好得多。