0
char *val1 = "/root";
char *val2 = "/p";
val1 = val1+val2;

2文字のポインター値を追加して、最初の値に割り当てたい。上記はコードスニペットです。

4

2 に答える 2

5

そのようにすることはできません。2つのポインターがあるため、それらを追加しようとすると、ポインターが指すものを操作するのではなく、ポインター自体を追加しようとします。2つの文字列を連結するには、両方を保持するのに十分な大きさの単一のバッファを用意/割り当てる必要があります。

char *both = malloc(strlen(val1) + strlen(val2) + 1);
if (both != NULL) {
    strcpy(both, val1);
    strcat(both, val2);
}
于 2012-07-01T16:16:38.953 に答える
2

strcatまたはstrncat関数を使用して文字列を連結します。C には文字列連結演算子がありません。

于 2012-07-01T16:15:41.397 に答える