2016-04-11 14 views
0

で2D char配列を付加すると、は(Cで)1D char配列

matrix1[4][4] = { 'a','b','c','d', 
        'e','f','g','h', 
        'i','j','k','l', 
        'm','n','o','p'} 

string1[50] = "text" 

はどのように文字列に変換マトリックスから文字を追加する方法について行くのですか? "text"に "g"を追加してstring2 = textgのようにしたいのが好きですか

strcatはこれらのパラメータを使用しません。別のcharを作るようなことはできますか?string2 = matrix1 [2] [3]それをstring1に追加しますか?しかし、もし私がtextgkを作るためにgとkのような1つ以上のcharを必要としたらどうでしょうか?

+0

'strncat(string1、matrix1 [1] [2]、1); strncat(string1、matrix1 [2] [2]、1);'または 'char string2 [50]; snprintf(string2、sizeof(string2)、 "%s%c%c"、string1、matrix1 [1] [2]、matrix1 [2] [2]); '行列1 [1] [2]: 'g'、行列1 [2] [2]: 'k'、行列1 [2] [3]: 'l' – BLUEPIXY

答えて

1

は直接

text[4] = matrix [2][3]; 
text [5] = '\0'; 

それとも、このような何かを行うことができますが、それを割り当てます。もちろん

void appendChar(char * pString, char c) 
{ 
    int len = strlen (pString); 
    pString[len] = c; 
    pString [len +1] = '\0'; 

} 

appendChar (string1, matrix [2][3]); 

この機能が付加される文字を保持するのに十分な大きさのバッファにpStringポイントを想定しています。