-2

2 つの c 文字列を連結するメソッドがあります。メソッドは新しいものを返します。それは正常に動作します。このメソッドを無効にして、最初のメソッドを変更する方法はありますか?

編集: string.h ライブラリの strcopy またはその他の関数を使用できません。また、s1 に s2 を収容するのに十分なスペースがあることを確認するのは、呼び出し元次第であると想定されます。

char *str_glue(char *s1, char *s2) 
{
char *r; //return string
int len1, len2;
int i, j;

len1 = str_length(s1);
len2 = str_length(s2);

if ((r=(char*)malloc(len1 + len2 + 1))==NULL)
{
    return NULL;
}

for (i=0, j=0; i<len1; i++, j++) {
    r[j] = s1[i];
}
for (i=0; i<len2; i++, j++)
{
    r[j] = s2[i];
}

r[j] = '\0';

return r;

}


int main() {

char* x = "lightning";
char* y = "bug";
char *z = str_glue(x, y);
printf("%s\n", z);
}
4

3 に答える 3