91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

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
莱阳市| 日照市| 丘北县| 葵青区| 大同市| 嘉义县| 冷水江市| 濉溪县| 洛隆县| 舒城县| 隆子县| 凌源市| 博罗县| 克拉玛依市| 晋中市| 肇州县| 宁津县| 卫辉市| 南宁市| 万山特区| 静海县| 石家庄市| 讷河市| 临海市| 金坛市| 朝阳市| 正宁县| 石门县| 长海县| 娱乐| 绥阳县| 胶南市| 宁波市| 清镇市| 商城县| 闽清县| 酒泉市| 白城市| 昌黎县| 合肥市| 宜宾县|