|
C与C++字符串分割方法示例汇总
在C语言中,没有内置的字符串分割函数。但是,你可以使用其他字符串操作函数和循环来实现字符串分割。这里是使用 strtok 函数在C中分割字符串的示例:
- #include <stdio.h>
- #include <string.h>
- int main() {
- char str[] = "Hello,World,How,Are,You";
- char* token = strtok(str, ",");
- while (token != NULL) {
- printf("%s\n", token);
- token = strtok(NULL, ",");
- }
- return 0;
- }
复制代码在C++中,有多种方法可以分割字符串。这里介绍两种常见的方法: 1. 使用 std::stringstream : - #include <iostream>
- #include <sstream>
- #include <string>
- #include <vector>
- int main() {
- std::string str = "Hello,World,How,Are,You";
- std::stringstream ss(str);
- std::string token;
- std::vector<std::string> tokens;
- while (std::getline(ss, token, ',')) {
- tokens.push_back(token);
- }
- for (const auto& t : tokens) {
- std::cout << t << std::endl;
- }
- return 0;
- }
复制代码2. 使用 std::string 成员函数:
- #include <iostream>
- #include <string>
- #include <vector>
- int main() {
- std::string str = "Hello,World,How,Are,You";
- std::vector<std::string> tokens;
- std::string delimiter = ",";
- size_t pos = 0;
- std::string token;
- while ((pos = str.find(delimiter)) != std::string::npos) {
- token = str.substr(0, pos);
- tokens.push_back(token);
- str.erase(0, pos + delimiter.length());
- }
- tokens.push_back(str);
- for (const auto& t : tokens) {
- std::cout << t << std::endl;
- }
- return 0;
- }
复制代码这两种方法都是根据一个分隔符(在这个例子中是 , )来分割字符串,并将结果子字符串存储在一个容器(如 std::vector<std::string> )中。你可以修改分隔符以根据不同的字符或模式来分割字符串。
|
|