连接2个字符串

来源:百度知道 编辑:UC知道 时间:2024/06/05 20:19:33
main()
{void lianjie(char [],char [],char []);
char a[100],b[100],c[200];
int i,j,k;
printf("输入a");
scanf("%s",a);
printf("输入b");
scanf("%s",b);
lianjie(a,b,c);
}
void lianjie(char a[],char b[],char c[])
{int i,j;
for(i=1;a[i]!='\0';i++)
c[i]=a[i];
for(j=1;b[j]!='\0';j++)
{c[i]=b[j];i++}
c[i]='\0';
printf("%s",c);
}
为什么运行之后输入2个字符串 却不显示结果呢?

完整代码,编译环境VC6:
#include <stdio.h>
void lianjie(char [],char [],char []);

void main(){
char a[100],b[100],c[200];
printf("输入a:");
scanf("%s",a);
printf("输入b:");
scanf("%s",b);

lianjie(a,b,c);
printf("连接后:%s\n",c);
}
void lianjie(char a[],char b[],char c[]) {
int i,j;
for(i=0;a[i];++i) c[i]=a[i];
for(j=0;b[j];++j) c[i++]=b[j];

c[i]=0;
}
提醒楼主:没分的问题回得慢,容易被灌水,上面的人DYF1362就是最好的例子
1楼的人回答也只是一知半解

其实问题就一个:

数组int a[n];的下标是从0 ~ n-1,不是1 ~ n;

回答问题就有2分,采纳之后又有20分,怎么能说没分呢

^=^

i和j都得从0开始吧
连接函数后面i++分号也少了哦
目前就看到这2个错误。。
难道是c[0]默认是'\0'所以显示不出来吧?