目前共有2篇帖子。
【原創】C語言版本的join函數(字元串數組組合為字元串的函數)(單字元分隔符版)
1樓 巨大八爪鱼 2015-11-21 20:53
註:部分函數依賴於
https://zh.arslanbar.net/post.php?t=23426
中定義的一些函數

char *join(char delimiter, char **array)
{
    int totallen = strarrtotallen(array);
    int alen = strarrlen(array);
    int len = totallen + alen;
    if (len == 0)
        len++;
    char *str = (char *)malloc(len * sizeof(char));
    char *pStr = str;
    if (len == 1)
    {
        *str = '\0';
        return str;
    }
    while (*array != NULL)
    {
        while (**array != '\0')
        {
            *pStr = **array;
            pStr++;
            (*array)++;
        }
        *pStr = delimiter;
        pStr++;
        array++;
    }
    *(pStr - 1) = '\0';
    return str;
}

int main()
{
    char *strarr[] = {"apple", "banana", "orange", NULL};
    char *str = join(',', strarr);
    puts(str);
    free(str);
    return 0;
}
輸出:apple,banana,orange
2樓 巨大八爪鱼 2015-11-21 20:55
當char *strarr[] = {NULL};時,輸出為空字元串,strlen(str) = 0
當char *strarr[] = {"abc", NULL};時,輸出abc,strlen(str) = 3
當char *strarr[] = {"abc", "defg", NULL};時,輸出abc,defg,strlen(str) = 8

回復帖子

內容:
用戶名: 您目前是匿名發表
驗證碼:
 
 
©2010-2025 Arslanbar [手機版] [桌面版]
除非另有聲明,本站採用創用CC姓名標示-相同方式分享 3.0 Unported許可協議進行許可。