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

请问一道编程题

2012-03-01 
请教一道编程题编写一个函数,它接受两个字符串参数,将它们连接成一个字符串,并使用函数malloc()为该字符串

请教一道编程题
编写一个函数,它接受两个字符串参数,将它们连接成一个字符串,并使用函数malloc()为该字符串分配足够的存储空间,然后返回一个指向该字符串的指针。
例如,如果传递的是"Hello" 和 "World",该函数将返回一个指向"Hello World!"的指针。

[解决办法]

C/C++ code
#include<stdio.h>#include<string.h>#include<stdlib.h>/*编写一个函数,它接受两个字符串参数,将它们连接成一个字符串,并使用函数malloc()为该字符串分配足够的存储空间,然后返回一个指向该字符串的指针。例如,如果传递的是"Hello" 和 "World",该函数将返回一个指向"Hello World!"的指针。*/char *Strcat(char *s1, char *s2);int main() {    char s1[] = "Hello";    char s2[] = "World";    char *s = Strcat(s1, s2);    printf("s=%s\n", s);    free(s);    s = NULL;    return 0;}char *Strcat(char *s1, char *s2){    int len = strlen(s1) + strlen(s2) + 2;  /*包含一个空格和一个字符串结束符*/    char *s = (char *)malloc(len*sizeof(char));    if(s == NULL) {        printf("malloc error!\n");        exit(1);    }    sprintf(s, "%s %s", s1, s2);    return s;}
[解决办法]
C/C++ code
char *strcats(const char* sz1,const char *sz2){    int len = strlen(sz1)+strlen(sz2);    char *szDest = (char*)malloc(len+2);        char *temp =szDest;    while(*sz1 && (*temp++ = *sz1++));    *temp++ = ' ';    while(*sz2 && (*temp++ = *sz2++));    *temp = 0;    return szDest;} 

热点排行
Bad Request.