将一个字符从一个数组追加到另一个数组

时间:2013-12-06 07:02:36

标签: c

这是C杀死我的那些夜晚之一。如何一次读取一个数组并将该字符附加到另一个数组的末尾?

            bzero(message, BUFFSIZE);  // 1024 bytes
            strcpy(message, "your_file|");

            for (j=0; j<bytes_read; ++j) {
                fprintf(stdout, "%c", buffer[j]);
                strcat(message, buffer[j]);  //<--THIS FAILS!!! WHY!!!!
            }

            fprintf(stdout, "%s\n", message);

正如一位教授曾告诉我“C不喜欢你。”好吧,今晚我觉得C对我很生气。

1 个答案:

答案 0 :(得分:1)

strcat()期望第二个参数为const char *(C字符串),而您给它char

您可以将char转换为C字符串,即创建数组

char append[] = { buffer[j], '\0' }` 

或每次追加一个字符,最后追加空字节:

        bzero(message, BUFFSIZE);  // 1024 bytes
        strcpy(message, "your_file|");
        size_t len = strlen(message);

        for (j=0; j<bytes_read; ++j) {
            fprintf(stdout, "%c", buffer[j]);
            message[len++] = buffer[j];
        }

        message[len] = '\0';

        fprintf(stdout, "%s\n", message);