要求用两种方法合并两个字符串,一个用strcat,一个自己写函数,我自己写的这个函数哪里错了呀print出来总是少两个字符
问题描述:
#include<stdio.h>
#include<string.h>
void fun(char s1[],char s2[]);
int main()
{
char str1[50];
char str2[50];
setvbuf(stdout,NULL,_IONBF,0);
printf("Please input two strings:\n");
scanf("%s %s",str1,str2);
fun(str1,str2);
printf("Output:%s\n",strcat(str1,str2));
}
void fun(char s1[],char s2[])
{
int i;
for(i=0;s2[i]!='\0';i++)
{
s1[strlen(s1)+i]=s2[i];
}
printf("Output:%s\n",s1);
}
答
修改如下,供参考:
#include<stdio.h>
#include<string.h>
void fun(char s1[], char s2[]);
int main()
{
char str1[50];
char str2[50];
setvbuf(stdout, NULL, _IONBF, 0);
printf("Please input two strings:\n");
scanf("%s %s", str1, str2);
fun(str1, str2);
printf("Output:%s\n", strcat(str1, str2));
return 0;
}
void fun(char s1[], char s2[])
{
int i=0,j;
while (s1[i]) i++;
for (j = 0; s2[j] != '\0'; j++)
{
s1[i++] = s2[j];
}
s1[i] = '\0';
printf("Output:%s\n", s1);
}