两个字符串怎么相连?
用C语言。 char a[]="sdfdf";
char b[]="6d6445";
[解决办法]
char *c = (char *)malloc(strlen(a) + strlen(b) + 1);
sprintf(c, "%s%s", a, b);
[解决办法]
如果是
char *a=(char *)malloc(..);
...
可以用
char *a = (char *)realloc(a,strlen(a) + strlen(b) + 1);
strcat(a,b);
[解决办法]
申请的内存未初始化,sprintf 并不会生成末尾的空字符,后果很严重的。
[解决办法]
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char a[]="sdfdf";
char b[]="6d6445";
char *c;
int main() {
c=(char *)malloc(strlen(a) + strlen(b) + 1);
if (NULL==c) {
printf("Can not malloc c!\n");
return 1;
}
strcpy(c,a);
strcat(c,b);
printf("a:[%s],b:[%s],c:[%s]\n",a,b,c);
free(c);
return 0;
}