c语言题:关于字符串连接

来源:百度知道 编辑:UC知道 时间:2024/06/22 05:23:17
编写一个函数StrCatenate ,输入两个字符串,将第二个字符串与第一个字符串连接,连接后结果由第一个字符串返回。

#include <stdio.h>
#include <malloc.h>

char *str_cat(const char *str1, const char *str2);

int main(){
char *str1 = "abc";
char *str2 = "def";
char *cat = str_cat(str1, str2);
printf("[%s] + [%s] = [%s]\n", str1, str2, cat);
free(cat); //释放内存
return 0;
}
char *str_cat(const char *str1, const char *str2){
int len1 = 0;
int len2 = 0;
for (len1 = 0; *(str1+len1) != '\0'; len1++){} //获取str1长度
for (len2 = 0; *(str2+len2) != '\0'; len2++){} //获取str2长度
char *ret = (char *)malloc(sizeof(char)*(len1+len2+1)); //申请动态空间
/*内存赋值*/
int i;
for (i=0; i<len1; i++){
*(ret+i) = *(str1+i);
}
for (i=0; i<len2; i++){
*(ret+len1+i) = *(str2+i);
}
*(ret+len1+len2) = '\0';

return re