-2

array 内に X1 X2 と X3 を含む 3 つの文字がありました

char array[3]={X1,X2,X3}

配列内の3つのデータを1つの文字に結合したい

strcat(array[0]," ");
strcat(array[0],array[1]);
strcat(array[0]," ");
strcat(array[0],array[2]);

printf("%s",array[0])

この「X1 X2 X3」のような結果が得られることを期待しています

4

6 に答える 6

3

3文字を連結して1文字列にしたいということだと思います。

sprintf十分な配列で使用します。

char str[6];
char array[3] = {'l', 'o', 'l'};

// write
sprintf(str, "%c %c %c", array[0], array[1], array[2]);

// print
printf(str);
于 2013-05-06T09:14:10.827 に答える
2

null ターミネータを含めるには、もう 1 バイト必要です。

char array[4] = { 'a', 'b', 'c', '\0' };
printf( "%s\n", array );

あなたのabcを与えます

于 2013-05-06T09:13:58.090 に答える
0
#include <stdio.h>

char *join(char *result, const char array[], size_t size, const char sep){
    size_t i,len=0;
    for(i=0;i<size;++i){
        len+=sprintf(result+len, "%c", array[i]);
        if(i < size - 1)
            len+=sprintf(result+len, "%c", sep);
    }
    return result;
}

int main(void){
    const char array[] = { 'x', 'y', 'z'};
    char result[6];

    join(result, array, sizeof(array)/sizeof(char), ' ');
    printf("%s", result);//"x y z"
    return 0;
}
于 2013-05-06T09:32:58.947 に答える
0

個々の文字を文字列に変換してから、それらを連結できます。

例えば

    char c = 'c';
    char d = 'd';
    string s1(1, c);
    string s2(1, c);
    string cd = s1 + s2;
于 2017-12-05T21:38:21.287 に答える