C++string.split()
时间: 2023-12-01 10:07:45 浏览: 38
C语言并没有内置的split()函数来拆分字符串。但是你可以使用其他方法来实现字符串的拆分操作。一种常见的方法是使用strtok()函数。以下是一个示例代码:
```c
#include <stdio.h>
#include <string.h>
int main() {
char str[] = "Hello World! C知道";
char *token = strtok(str, " ");
while(token != NULL) {
printf("%s\n", token);
token = strtok(NULL, " ");
}
return 0;
}
```
这段代码会将字符串"Hello World! C知道"按空格进行拆分,并逐个打印拆分后的子字符串。输出结果如下:
```
Hello
World!
C知道
```
需要注意的是,strtok()函数会修改原始字符串,将分隔符替换为NULL字符。如果你不希望修改原始字符串,可以先创建一个副本进行操作。
相关问题
c++ string split
有几种在C语言中实现字符串分割的方法。下面是其中三种常见的方法:
方法1:使用strtok函数
```c
#include <stdio.h>
#include <string.h>
int main() {
char str[] = "hello,world,this,is,a,test";
char delim[] = ",";
char *ptr = strtok(str, delim);
while (ptr != NULL) {
printf("%s\n", ptr);
ptr = strtok(NULL, delim);
}
return 0;
}
```
方法2:使用sscanf函数
```c
#include <stdio.h>
int main() {
char str[] = "hello,world,this,is,a,test";
char delim = ',';
char item
C++ string split()
C++ 中没有内置的字符串分割函数,但可以通过使用标准库中的 `std::stringstream` 或者使用 `std::string::find()` 和 `std::string::substr()` 等方法来实现字符串分割。
下面是使用 `std::stringstream` 的示例代码:
```c++
#include <iostream>
#include <sstream>
#include <string>
#include <vector>
std::vector<std::string> split(const std::string& s, char delimiter) {
std::vector<std::string> tokens;
std::stringstream ss(s);
std::string token;
while (std::getline(ss, token, delimiter)) {
tokens.push_back(token);
}
return tokens;
}
int main() {
std::string text = "Hello world!";
std::vector<std::string> words = split(text, ' ');
for (const auto& word : words) {
std::cout << word << std::endl;
}
return 0;
}
```
输出结果为:
```
Hello
world!
```
在这个例子中,我们首先定义了一个名为 `split()` 的函数,该函数接受一个字符串和一个分隔符作为参数,返回一个由分割后的子字符串组成的字符串向量。在函数内部,我们使用 `std::stringstream` 将输入字符串按照分隔符进行分割,并将分割后的子字符串存储到一个字符串向量中。
需要注意的是,`std::getline()` 函数是以换行符作为默认的分隔符,因此在使用 `std::stringstream` 进行字符串分割时需要指定分隔符。