C语言编程字符串连接问题

2025-02-02 07:57:16
推荐回答(2个)
回答1:

我晕~太简单了~我能用比别人简单1万倍的方法实现:
先说StrCatenate是什么意思,StrCatenate中的Str是String(字符串)的缩写,Catenate英文意思是"连接",合起来就是"字符串连接"的意思.
代码如下:

#include
char *StrCatenate(char *str1,char *str2)
{
return ( strcat( str1,str2 ) );
}
// 注意:一共有4行,第一句 #include 千万不能少!!!!

上面的代码我在VC++6.0中编译连接,测试成功~如果不对,我就把显示屏吃了~如果题目要求如你所说那么简单,那么你拿这段代码去给老师看~老师要不夸你是个天才我把主机也吃了~~~

回答2:

...........楼上的很有才

我写了两个,自己看吧

#include
#include

char *StrCatenate1(char *str1,char *str2)
{
int len=0;
char *s1,*s2,*resultStr;
s1=str1;s2=str2;
while(*str1++) len++; /*得到str1的长度,未使用库函数strlen()*/
while(*str2++) len++; /*得到str2的长度*/
str1=(char *)malloc(len*sizeof(char)); /*为新的字符串分配空间*/
resultStr=str1;
while(*s1) *str1++=*s1++;
while(*s2) *str1++=*s2++;
*str1='\0';
return resultStr;

}

char *StrCatenate2(char *str1,char *str2)
{
int len;
char *resultStr,*backup;
backup=str1;
len=strlen(str1)+strlen(str2); /*调用strlen()求长度,需要string.h头文件*/
str1=(char *)malloc(len*sizeof(char)); /*为新的字符串分配空间*/
resultStr=str1;
while(*backup) *str1++=*backup++;
while(*str2) *str1++=*str2++;
*str1='\0';
return resultStr;

}

main()
{
char *s1="hello ";
char *s2="world!";
printf("%s\n",StrCatenate1(s1,s2));
printf("%s",StrCatenate2(s1,s2));
}