C++split函数
时间: 2023-10-01 15:02:29 浏览: 121
C语言中的split函数在标准库中并没有提供,但可以通过自定义函数来实现字符串的分割操作。下面是一个简单的示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char** split(const char* str, const char* delimiter, int* count) {
char* copy = strdup(str); // 复制原始字符串
char** result = NULL;
*count = 0;
char* token = strtok(copy, delimiter); // 使用strtok函数进行分割
while (token != NULL) {
result = realloc(result, (*count + 1) * sizeof(char*)); // 重新分配内存空间
result[*count] = strdup(token); // 分割后的字符串存入result数组
(*count)++;
token = strtok(NULL, delimiter);
}
free(copy); // 释放复制的字符串内存空间
return result;
}
int main() {
const char* str = "Hello,World,CSDN";
const char* delimiter = ",";
int count;
char** tokens = split(str, delimiter, &count);
for (int i = 0; i < count; i++) {
printf("%s\n", tokens[i]);
free(tokens[i]); // 释放分割后的字符串内存空间
}
free(tokens); // 释放结果数组内存空间
return 0;
}
```
上述代码使用`strtok`函数将字符串按照指定的分隔符进行分割,并将分割后的子字符串存储在动态分配的字符指针数组中。通过循环遍历结果数组,可以打印分割后的字符串。记得在使用完毕后释放相关的内存空间,避免内存泄漏。
阅读全文