如何像在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!

  • 好多了,谢谢。反对票转换为赞成票。比一堆繁琐的拆分代码要好得多。

以上是如何像在python中一样在C++中分割字符串?的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>