编写一个函数,连接两个字符串

来源:百度知道 编辑:UC知道 时间:2024/05/08 05:19:25
#include "stdio.h"
void main()
{
void concatenate(char string1[],char string2[],char string[]);
char s1[20],s2[20],s[20];
scanf("%s",s1);
scanf("%s",s2);
concatenate(s1,s2,s);
printf("%s\n",s);
void concatenate(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';
}
}
运行出错,不知道应该如何解决???

程序算法没有一点错误,string[i+j]=string2[j]是正确的。

不知道是你写错了还是怎么的,把"}"的位置放错了吧:
考虑到交互性,改了一下下:

#include<stdio.h>
void main()
{
void concatenate(char string1[],char string2[],char string[]);
char s1[20],s2[20],s[20];
printf("Input string1:");//增加
scanf("%s",s1);
printf("Input string2:");//增加
scanf("%s",s2);
concatenate(s1,s2,s);
printf("Result:%s\n",s); //修改
getch();//增加
}//错误所在,修改

void concatenate(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';
}

string[i+j+1]=string2[j];

试下可以不