请编写一个函数fun,它的功能是:比较两个字符串的大小
请编写一个函数fun,它的功能是:比较两个字符串的大小,(不得调用C语言提供的字符串比较函数strcmp()),函数返回较大字符串。若两个字符串相同,则返回第一个字符串。...
请编写一个函数fun,它的功能是:比较两个字符串的大小,(不得调用C语言提供的字符串比较函数strcmp()),函数返回较大字符串。若两个字符串相同,则返回第一个字符串。例如,输入:abc abd,函数将返回abd。
展开
2个回答
展开全部
#include<stdio.h>
char *fun(char* str1,char *str2)
{
int i = 0;
for(;;i++) /*for循环比较*/
{
/*如果循环到 i ,两个字符串都是'\0',说明两字符串相等,返回第一个字符串*/
if((str1[i] == '\0')&&(str2[i] == '\0'))return str1;
/*如果第一个字符串先结束, 说明第二个字符串比第一个长,返回第二个字符串*/
else if(str1[i] == '\0')return str2;
/*如果第二个字符串先结束, 说明第一个字符串比第二个长,返回第一个字符串*/
else if(str2[i] == '\0')return str1;
/*如果两个字符串都没有结束,则比较当前字符的大小*/
else
{
if(str1[i] > str2[i])return str1;/*当前字符第一个比第二个大,返回第一个字符串*/
if(str1[i] < str2[i])return str2;/*当前字符第一个比第二个小,返回第二个字符串*/
}
}
}
int main(void)
{
char a[] = "abd";
char b[] = "abc";
char c[] = "abc";
char d[] = "ab";
printf("abd和abc比较:");
puts(fun(a,b));
printf("abc和ab比较 :");
puts(fun(b,d));
printf("abc和abc比较:");
puts(fun(b,c));
return 0;
}
char *fun(char* str1,char *str2)
{
int i = 0;
for(;;i++) /*for循环比较*/
{
/*如果循环到 i ,两个字符串都是'\0',说明两字符串相等,返回第一个字符串*/
if((str1[i] == '\0')&&(str2[i] == '\0'))return str1;
/*如果第一个字符串先结束, 说明第二个字符串比第一个长,返回第二个字符串*/
else if(str1[i] == '\0')return str2;
/*如果第二个字符串先结束, 说明第一个字符串比第二个长,返回第一个字符串*/
else if(str2[i] == '\0')return str1;
/*如果两个字符串都没有结束,则比较当前字符的大小*/
else
{
if(str1[i] > str2[i])return str1;/*当前字符第一个比第二个大,返回第一个字符串*/
if(str1[i] < str2[i])return str2;/*当前字符第一个比第二个小,返回第二个字符串*/
}
}
}
int main(void)
{
char a[] = "abd";
char b[] = "abc";
char c[] = "abc";
char d[] = "ab";
printf("abd和abc比较:");
puts(fun(a,b));
printf("abc和ab比较 :");
puts(fun(b,d));
printf("abc和abc比较:");
puts(fun(b,c));
return 0;
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询