C语言string方法怎样处理字符串分割

1096
2024/9/29 15:31:10
栏目: 编程语言
开发者测试专用服务器限时活动,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 函数来分割一个示例字符串,并打印分割后的结果。最后,我们释放分配的内存。

辰迅云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>

推荐阅读: c语言将两个数组合并的方法是什么