编写一个C语言函数,比较两个字符串的大小
#include<stdio.h>
#define N 100
int input(char*a,char*b)//输入两个字符串
{
printf("Input the first information:\n");
fgets(a,N,stdin);
printf("Input the secend information:\n");
fgets(b,N,stdin);
}
int my_strcmp(char*a,char*b)//比较字符串每个字符的大小
{
while((*a!='\0')&&(*b!='\0'))
{
if(*a>*b)
{
return 0;
}
else if(*a<*b)
{
return 1;
}
else
{
a++;
b++;
}
}
if((*a=='\0')&&(*b!='\0'))//字符串b比字符串a长
{
return 1;
}
else if((*a!='\0')&&(*b=='\0'))//字符串a比字符串b长
{
return 0;
}
else
{
return 2;
}
}
int main()
{
char a[N]={0};
char b[N]={0};
int net2=0;
input(a,b);//调用输入函数
net2=my_strcmp(a,b);//调用比较大小函数
if(0==net2)//输出大小
{
printf("a>b\n");
}
else if(1==net2)
{
printf("a<b\n");
}
else
{
printf("a=b\n");
}
return 0;
}
扩展资料:
一、return在函数中的作用
我们如果将函数看做一个加工厂,参数就是我们向加工厂投入的原料,具体的函数功能实际上就是加工的过程,而return语句代表返回值,就是加工厂在实现加工之后给“投资人”的成品。
二、return语句的特点
1、在函数当中,遇到return语句之后就意味着函数运行的结束,在此之后的代码是不运行的。
2、它不支持任何运算也没有任何内建方法,和任何其他的数据类型比较是否相等时永远返回false,也可以将None赋值给任何变量。
3、执行到return语句时,会退出函数,return之后的语句不再执行。但将return语句放在try语句块中,是个例外。
三、return的默认值:return函数默认的返回值为undefined。
推荐于2017-09-21 · 知道合伙人教育行家
思路:字符串比较大小即两个字符串自左向右逐个字符相比(按ASCII值大小相比较),直到出现不同的字符或遇'\0'为止。当s1<s2时,返回-1;当s1=s2时,返回 0;当s1>s2时,返回1。
参考代码:
#include <stdio.h>
int strcmp(char *s1,char *s2) {
int i ;
for(i=0;(s1[i]!='\0')&&(s2[i] != '\0');i++) {
if(s1[i] > s2[i]) return 1;
else if(s1[i] < s2[i]) return -1;
}
if(s1[i] != '\0') return 1;
if(s2[i] != '\0') return -1;
return 0;
}
int main() {
char a[100],b[100];
gets(a);
gets(b);
if(strcmp(a,b)==1) printf("字符串a>字符串b");
else if(strcmp(a,b)==0) printf("字符串a=字符串b");
else printf("字符串a<字符串b");
return 0;
}
/*
运行结果:
asdg
asdg
字符串a=字符串b
*/
2013-12-03
int i = 0;
for(;((p1[i] != '\0') && (p2[i] != '\0'));i++) {
if(p1[i] > p2[i]) return 1;
else if(p1[i] < p2[i]) return -1;
}
if((p1[i] == '\0') && (p2[i] == '\0')) return 0;
if(p1[i] == '\0') return -1;
return 1;
}int main() {
int cmpres;
char s1[50];
char s2[50];
printf("Enter s1 you want to estimate:");
scanf("%s",s1);
printf("Enter s2 you want to estimate:");
scanf("%s",s2);
cmpres = MyStrcmp(s1,s2);
if(cmpres > 0) printf("s1 > s2\n\n");
else if(cmpres == 0) printf("s1 = s2\n\n");
else printf("s1 < s2\n\n");
return 0;
}