我有一个连接两个 c 字符串的方法。该方法返回一个新的。它工作正常。有没有办法让这个方法无效,只修改第一个?
编辑:我不能使用 strcopy 或 string.h 库中的任何其他函数。还假设由调用者来确保 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);
}