爱康集团是正规公司吗:字符连接函数改错c++

来源:百度文库 编辑:中科新闻网 时间:2024/04/28 13:11:26
#include <iostream.h>
char mystrcat(char a[],char b[])
{
int i=0,j=0,k,l;
while(a[i])
{
i++;
k=i;
}
while(b[j])
{
j++;
l=j;
}
for(i=k,j=0;i<k+l;i++,j++)
{
a[i]=b[j];
}
return a[i];
}
void main()
{
char a[100],b[100];
cout<<"请输入数组"<<endl;
cin>>a;
cout<<"请输入数组"<<endl;
cin>>b;
cout<<"数组为:"<<mystrcat(a,b)<<endl;
}

没有错误但是改正不了,请各位兄弟姐妹帮我指出并改正,谢谢!!!

char* mystrcat(char a[],char b[])
{
int i=0,j=0,k,l;
while(a[i])
{
i ++;
k = i;
}
while(b[j])
{
j ++;
l = j;
}
for(i = k, j = 0; i < k + l; i ++, j ++)
{
a[i] = b[j];
}
return a;
}

int main()
{
char a[100],b[100];
cout<<"请输入数组"<<endl;
cin>>a;
cout<<"请输入数组"<<endl;
cin>>b;
cout<<"数组为:"<<mystrcat(a,b)<<endl;

return 0;
}

#include <iostream.h>
char *mystrcat(char a[],char b[])
{
int i=0,j=0,k,l;
while(a[i])
{
i++;
k=i;
}
while(b[j])
{
j++;
l=j;
}
for(i=k,j=0;i<=k+l;i++,j++)
{
a[i]=b[j];
}
return a;
}
void main()
{
char a[100],b[100];
cout<<"请输入数组"<<endl;
cin>>a;
cout<<"请输入数组"<<endl;
cin>>b;
cout<<"数组为:"<<mystrcat(a,b)<<endl;
}

a[i]返回的是一个字符
并且你没有把b的最后一位结束符也拷进来
所以最后返回的a[i]是个未知数
输出会显示问号
这里需要返回一个数组
并且a的最后要有结束符

1.把mystrcat的返回类型改为char *
2.for(i=k,j=0;i<k+l;i++,j++) 改为for(i=k,j=0;i<=k+l;i++,j++),因为要把b结尾的字符串结束符也拷过来。
3.return a;

是正确的啊.....我运行过了.......由于我在学校的机子上面上的..没有安装C++所以我只更改了一点点输入输入函数...在WIN-TC上面运行的..能够运行出结果........