#include <stdio.h>
#include <string.h>
int main(){
char a[7]= "car";
char b[7]="yyoug";
strcat(a,b[2]);
puts(a);
return 0;
}
這不會編譯。它表示「傳遞'strcat'的參數2會使得整型指針沒有投射。」我沒有被教過使用指針。如何將字符串數組的元素連接到字符串數組?
#include <stdio.h>
#include <string.h>
int main(){
char a[7]= "car";
char b[7]="yyoug";
strcat(a,b[2]);
puts(a);
return 0;
}
這不會編譯。它表示「傳遞'strcat'的參數2會使得整型指針沒有投射。」我沒有被教過使用指針。如何將字符串數組的元素連接到字符串數組?
b[2]
是char
類型,但strcat
預計它的兩個參數都是char *
類型。
改爲使用strncat
。如果傳遞的第三個參數是1
strncat(a, &b[2], 1);
謝謝! –
這將追加只有一個字節,即b[2]
到第一個字符串如果你只是想用strncat
因爲你想了解它是如何工作的,然後@hacks例子是完全地完美。但如果你只是想在字符Concat的到a
你也可以使用
a[3] = b[2];
但是請記住,無論是解決方案僅適用,如果目標數組,你的情況a
足夠大。
不使用malloc,這可能有助於解釋發生了什麼事情在
#include <assert.h>
#include <stdio.h>
#include <string.h>
int main(){
//positions 0 1 2 3
//"car" == ['c', 'a', 'r', '\0']
char a[7] = "car";
char b[7] = "yyoug";
//strlen("car") == 3;
//"car"[3] == ['\0'];
a[strlen(a)] = b[2];
assert(a[3] == 'o');
a[strlen(a) + 1] = '\0';
assert(a[4] == '\0');
puts(a);
return 0;
}
'B [2]'給數組中的第三個元素的值。 '&b [2]'給出地址..這是預計從'strcat()' – Gopi
您期望的輸出是什麼? – jeremy
謝謝!但現在它會將「oug」添加到「car」一詞中。我想要的是字母'o' –