1052: 两个字符串连接
Description
写一函数,将两个字符串连接
Input
两行字符串
Output
链接后的字符串
Sample Input**
123
abc
Sample Output
123abc
参考解答:
函数版参考1:
#include<stdio.h>
void stringcat(char *s1, char *s2, char *s);
int main()
{
char str1[100],str2[100],str3[100];
gets(str1);
gets(str2);
stringcat(str1,str2,str3);
puts(str3);
return 0;
}
void stringcat(char *s1, char *s2, char *s)
{
int i=0,j=0;
while(s1[i]!='\0')
{
s[i]=s1[i];
i++;
}
while(s2[j]!='\0')
{
s[i+j]=s2[j];
j++;
}
s[i+j]='\0';
}
函数版参考2:
#include<stdio.h>
char *stringcat(char *s1, char *s2);
int main()
{
char str1[100],str2[100],*str3;
gets(str1);
gets(str2);
str3=stringcat(str1,str2);
puts(str3); //不用str3,直接输出str1也行,这个方案将连接结果放在str1中了
return 0;
}
char *stringcat(char *s1, char *s2)
{
int i=0,j=0;
while(s1[i]!='\0')
{
i++;
}
while(s2[j]!='\0')
{
s1[i+j]=s2[j];
j++;
}
s1[i+j]='\0';
return s1;
}
非函数版解决方案:
#include<stdio.h>
int main()
{
char str1[100],str2[100],str3[100];
gets(str1);
gets(str2);
int i=0,j=0;
while(str1[i]!='\0')
{
str3[i]=str1[i];
i++;
}
while(str2[j]!='\0')
{
str3[i+j]=str2[j];
j++;
}
str3[i+j]='\0';
puts(str3);
return 0;
}