1

C 菜鸟。我正在尝试将字符串“文件”拆分为由空格分隔的子字符串,并将所有新子字符串放入二维数组“file_array”中。

当前代码的错误:二维数组在新二维数组中的每个字符串之前被几个随机字符填充。二维数组也没有被“文件”中的所有子字符串填充(我从测试打印中知道这一点)。

很抱歉缺少评论 - 格式不起作用。

int submit_files(char files[]){


        char file_array[20][50];
        char *file;
        int i = 0;
        file = strtok(files, " ");

        while(file != NULL){
             strcat(file_array[i], file);
             file = strtok(NULL, " ");
             i++;
        }


        return 0;
    }
4

1 回答 1

0
int submit_files(char files[])
{
    char file_array[20][50];
    char *file;
    int i = 0;
    for (file = strtok(files, " "); file && i < 20; file = strtok(NULL, " "), i++)
    {
         strncpy(file_array[i], file, 50);
    }
    for (; i < 20; ++i)
    {
         *file_array[i] = 0;
    }

    return 0;
}
于 2013-03-13T22:25:39.023 回答