Home >Backend Development >C++ >How Can I Efficiently Separate Comma-Delimited Strings in C Using stringstream?
Separating Comma-Delimited Strings using Stringstream
In C , stringstream is a powerful tool for manipulating strings and extracting data. While it can easily separate space-delimited strings, comma-separated strings require a slightly modified approach.
Original Approach:
The following code demonstrates the original approach using stringstream to separate strings by space:
std::string str = "abc def,ghi"; std::stringstream ss(str); string token; while (ss >> token) { printf("%s\n", token.c_str()); }
Output:
abc def,ghi
This approach fails to separate the comma-separated tokens because the >> operator in stringstream assumes whitespace characters as delimiters.
Modified Approach:
To separate comma-delimited strings, we can utilize the getline() function provided by stringstream. This function allows us to read a string until a specified delimiter is encountered. Here's the modified code:
#include <iostream> #include <sstream> std::string input = "abc,def,ghi"; std::istringstream ss(input); std::string token; while(std::getline(ss, token, ',')) { std::cout << token << '\n'; }
Output:
abc def ghi
Explanation:
The getline() function reads the input string ss and extracts a token up to the first occurrence of the character we specify as the delimiter (here, it's a comma). It then assigns the extracted token to the token string and returns true if successful. By calling getline() repeatedly, we can iterate through the comma-separated tokens in the input string.
This approach effectively separates the comma-delimited strings into individual tokens, allowing for further processing or manipulation within your program.
The above is the detailed content of How Can I Efficiently Separate Comma-Delimited Strings in C Using stringstream?. For more information, please follow other related articles on the PHP Chinese website!