阅读量:0
在 C 语言中,没有内置的 string 分割函数,但我们可以使用一些简单的方法来实现字符串分割。以下是一个使用 C 语言实现的字符串分割函数示例:
#include <stdio.h> #include <stdlib.h> #include <string.h> // 分割字符串的回调函数 char* split(const char *str, const char *delim, int *count) { char *token = strtok(str, delim); char *result = NULL; *count = 0; while (token != NULL) { result = realloc(result, (*count + 1) * sizeof(char)); strcpy(result + *count * sizeof(char), token); (*count)++; token = strtok(NULL, delim); } return result; } int main() { const char *input = "Hello,World,This,Is,A,Test"; const char *delimiter = ","; int count; char **split_result = split(input, delimiter, &count); printf("Split result:\n"); for (int i = 0; i < count; i++) { printf("%s\n", split_result[i]); } // 释放分配的内存 for (int i = 0; i < count; i++) { free(split_result[i]); } free(split_result); return 0; }
在这个示例中,我们定义了一个名为 split
的函数,它接受一个字符串 str
、一个分隔符 delim
以及一个用于存储分割后的字符串数量的指针 count
。函数的返回值是一个指向分割后的字符串数组的指针。
我们使用 strtok
函数来分割字符串。strtok
函数会根据分隔符 delim
来分割字符串 str
,并返回一个指向分割后的子字符串的指针。我们在 split
函数中使用一个循环来处理所有的分割结果,并将它们存储在一个动态分配的字符串数组中。
在 main
函数中,我们调用 split
函数来分割一个示例字符串,并打印分割后的结果。最后,我们释放分配的内存。