中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

c語言中split函數的用法是什么

小億
175
2023-11-15 18:58:52
欄目: 編程語言

在C語言中,沒有內置的split函數。但是可以通過自定義函數來實現類似的功能。下面是一個示例函數,可以將字符串按照指定的分隔符進行拆分:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

char** split(const char* str, const char* delimiter, int* count) {
    char* copy = strdup(str);  // 復制原始字符串
    char* token = strtok(copy, delimiter);  // 分割第一個子串
    char** result = NULL;
    int i = 0;
    
    while (token != NULL) {
        result = realloc(result, sizeof(char*) * (i + 1));  // 分配空間存儲子串的指針
        result[i] = strdup(token);  // 復制子串
        i++;
        token = strtok(NULL, delimiter);  // 繼續分割下一個子串
    }
    
    free(copy);  // 釋放復制的字符串
    
    *count = i;  // 子串的數量
    
    return result;
}

int main() {
    const char* str = "Hello,World,!";
    const char* delimiter = ",";

    int count;
    char** tokens = split(str, delimiter, &count);

    for (int i = 0; i < count; i++) {
        printf("%s\n", tokens[i]);
    }
    
    // 釋放內存
    for (int i = 0; i < count; i++) {
        free(tokens[i]);
    }
    free(tokens);

    return 0;
}

以上示例中,split函數可以將字符串按照指定的分隔符(例如逗號)拆分成多個子串,并返回一個字符串指針數組。每個子串是一個獨立的字符串,存儲在動態分配的內存中。函數還接受一個整數指針,用于返回拆分后的子串數量。在示例程序中,將"Hello,World,!"按逗號進行拆分,并輸出拆分后的子串。

需要注意的是,使用完split函數后,需要記得釋放返回的字符串指針數組和每個子串的內存,以避免內存泄漏。

0
辉南县| 阜新市| 友谊县| 云南省| 肃南| 长治县| 嫩江县| 奉贤区| 金昌市| 富锦市| 泸西县| 景德镇市| 景宁| 信丰县| 潼关县| 长岭县| 沅江市| 南投县| 伊春市| 来安县| 竹溪县| 娄底市| 扎囊县| 思茅市| 屯昌县| 绥德县| 武隆县| 灵山县| 大冶市| 青岛市| 车险| 毕节市| 凤凰县| 齐齐哈尔市| 巨鹿县| 大同县| 蕉岭县| 宝应县| 东兰县| 襄汾县| 齐河县|