c语言 写一个函数能将两个字符串连接,在主函数中调用

2024-11-09 03:04:00
推荐回答(3个)
回答(1):

这样就可以了,我已经在vc6通过调试运行了,不过要注意一点哦,虽然c语言里面没有string类型的变量,但是在c++里面有,所以为了防止不必要的麻烦,你这里的变量名字最好不要用string
#include
void stringcat(char str1[],char str2[],char str[])
{
int i,j;
for(i=0;str1[i]!='\0';i++)
str[i]=str1[i];
for(j=0;str2[j]!='\0';j++)
str[i+j]=str2[j];
str[i+j]='\0';
}
void main()
{
char s1[]="this is a test",s2[]=", test is a good thing.",s3[40];
stringcat(s1,s2,s3);
puts(s3);
}

回答(2):

#include

void stringcat(char string1[],char string2[],char string[])
{
int i,j;
for(i=0;string1[i]!='\0';i++)
string[i]=string1[i];
for(j=0;string2[j]!='\0';j++)
string[i+j]=string2[j];
string[i+j]='\0';
}

void main()
{
char *s1="abcdefg",*s2="hijklmn",s[80];
stringcat(s1,s2,s);
printf("连接前字符串1:%s\n",s1);
printf("连接前字符串2:%s\n",s2);
printf("连接后字符串:%s\n",s);
}

回答(3):

/*在原有基础上作了修改*/
/*程序清单*/
#include

char *stringcat(char string1[],char string2[],char string[])
{int i,j;
for(i=0;string1[i]!='\0';i++) //注意是!=
string[i]=string1[i]; //写入串1
for(j=0;string2[j]!='\0';j++) //!=
string[i+j]=string2[j]; //继续写入串2
string[i+j]='\0'; //结束符
return string;
}

void main()
{
char s1[] = "abc";
char s2[] = "def";
char s3[20];
stringcat(s1,s2,s3);
puts(s3);
}