问题遇到的现象和发生背景
我的主函数中考虑的情况不全面,只比较了首字符
问题相关代码,请勿粘贴截图
/************************************/
//缺头文件和函数定义
/************************************/
int main()
{
char s1[31],s2[11],*p1,*p2,*t;
p1=gets(s1);
p2=gets(s2);
//此处编写代码,使p1指向大串的首字符,使p2指向小串的首字符
printf("%s,%s\n",p1,p2);
sub(_______); //此处缺少参数
printf("%s\n",s1);
return 0;
}/************************************/
//缺头文件和函数定义
/************************************/
int main()
{
char s1[31],s2[11],*p1,*p2,*t;
p1=gets(s1);
p2=gets(s2);
//此处编写代码,使p1指向大串的首字符,使p2指向小串的首字符
printf("%s,%s\n",p1,p2);
sub(_______); //此处缺少参数
printf("%s\n",s1);
return 0;
}
运行结果及报错内容
#include <stdio.h>
void sub(char s1[], char *p1, char *p2)
{
int i;
while(*p1)
{
p1++;
}
while(*p2)
{
*p1++=*p2++;
*p1=0;
}
for(i=0;i!=0;i++)
{
s1[i]=*(p1+i);
}
}
int main()
{
char s1[31], s2[11], *p1, *p2, *temp;
p1 = gets(s1);
p2 = gets(s2);
//此处编写代码,使p1指向大串的首字符,使p2指向小串的首字符
if(*p1<*p2)
{
temp=p1;
p1=p2;
p2=temp;
}
printf("%s,%s\n",p1,p2);
sub(s1, p1, p2); //此处缺少参数
printf("%s\n",s1);
return 0;
}
我的解答思路和尝试过的方法
我感觉被调函数问题不大,我如果输入
abcd
ABCD
能够达到预期结果,但是我如果输入
ABCD
abcd
运行结果就是错误的。
我想要达到的结果
Sample Input
ABCD
asdf
Sample Output
asdf,ABCD
asdfABCD