帮我看哪错了 把两个字符串连接

来源:百度知道 编辑:UC知道 时间:2024/06/11 17:57:36
#include<stdio.h>
#define N 50
void main()
{
int i=0,j=0;
char a[]="hello",b[]=" means ni hao",c[N];
while(a[i]!='\0')
{
c[i]=a[i];
i++;
}
while(b[j]!='\0')
{
c[i]=b[j];
i++;
j++;
}
puts(c);
}

#include<stdio.h>
#define N 50
void main()
{
int i=0,j=0;
char a[]="hello",b[]=" means ni hao",c[N];
while(a[i]!='\0')
{
c[i]=a[i];
i++;
}
while(b[j]!='\0')
{
c[i]=b[j];
i++;
j++;
}
c[i]='\0'; //在c字符串最后结束的时候再加个'\0'
puts(c);
}

说清楚点好不?连成什么样?

少了个c[i]='\0';
晚了一步.....

给你一段精简版:
char* Strcat(char* des, char* src)
{
if (*src=='\0')
return des;
char* index = des;//换成这句下面的一个while也省了char* index = des+strlen(des);
while (*index != '\0') index++;
while (*index++ = *src++);
return des;
}

我认为你可以用strcat()函数,这样更省事.