首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

两个字符串如何相连

2013-01-08 
两个字符串怎么相连?用C语言。 char a[]sdfdfchar b[]6d6445[解决办法]char *c (char *)malloc(s

两个字符串怎么相连?
用C语言。 char a[]="sdfdf";
char b[]="6d6445";
[解决办法]
char *c = (char *)malloc(strlen(a) + strlen(b) + 1);
sprintf(c, "%s%s", a, b);
[解决办法]

引用:
用C语言。 char a[]="sdfdf";
char b[]="6d6445";


如果是
char *a=(char *)malloc(..);
...

可以用
char *a = (char *)realloc(a,strlen(a) + strlen(b) + 1);
strcat(a,b);

[解决办法]
引用:
char *c = (char *)malloc(strlen(a) + strlen(b) + 1);
sprintf(c, "%s%s", 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;
}

热点排行