Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to split strings in C++ like in python?

Tags:

c++

python

string

so in python you can split strings like this:

string = "Hello world!"
str1 , str2 = string.split(" ") 
print(str1);print(str2)

and it prints:

Hello 
world!

How can i do the same in C++? This wasn't useful Parse (split) a string in C++ using string delimiter (standard C++) , i need them splited so i can acces them separatedly like print just str1 for example.


1 Answers

If your tokenizer is always a white space (" ") and you might not tokenize the string with other characters (e.g. s.split(',')), you can use string stream:

#include <iostream>
#include <string>
#include <sstream>

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;
}

Keep in mind that this code is only suggested for whitespace tokens and might not be scalable if you have many tokens. Output:

Hello
World!
like image 60
aminrd Avatar answered Feb 28 '26 04:02

aminrd