连接字符串

来源:百度知道 编辑:UC知道 时间:2024/05/17 21:40:24
har stringcat(char string1[],char string2[],char string[])
{int i,j;
for(i=0;string[i]!='\0';i++)
string[i]=string1[i];
for(j=0;string[j]!='\0';j++)
string[i+j]=string2[j];
string[i+j]='\0';

}

main()
{char s1[100],s2[100],s[100];
printf("Input string 1:");
scanf("%s",s1);
printf("\nInput string 2:");
scanf("%s",s2);
stringcat(s1,s2,s);
printf("The result:%s",s);
}
为什么最后没有结果,只是输出The result:

因为连接时把字符串搞错了

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

}
改成
har 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 stringcat(char string1[],char string2[],char string[])
{
while (*string1 != '\0') *string++ = *string1++;
while (*string2 != '\0') *string++ = *string2++;
}

for(i=0;string[i]!='\0';i++)
string[i]=string1[i];
for(j=0;string[j]!='\0';j++)
string[i+j]=string2[j];
string[i+j]='\