亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

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
文山县| 祥云县| 卢湾区| 洞头县| 都匀市| 江北区| 驻马店市| 上杭县| 静海县| 哈巴河县| 禄丰县| 辉县市| 白城市| 湖北省| 台北市| 威信县| 洪湖市| 屯门区| 石楼县| 阿图什市| 常山县| 平谷区| 德江县| 东丰县| 青浦区| 卫辉市| 东乡族自治县| 衢州市| 高邮市| 珲春市| 原阳县| 高安市| 乌兰察布市| 镇江市| 同德县| 谢通门县| 天水市| 富顺县| 黄山市| 观塘区| 沅江市|