编写一个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。

温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于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
*/

第2个回答  2013-12-03
#include <stdio.h>int MyStrcmp(char *p1,char *p2) {
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;
}本回答被网友采纳

编写一个C语言函数,比较两个字符串的大小
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(...

c语言中如何比较两个字符串的大小?
在C语言中,不能直接使用关系运算符(如 <、>、== 等)来比较两个字符串的大小,因为字符串实际上是由字符数组表示的,而字符数组的比较需要逐个字符进行。要比较两个字符串的大小,可以使用 C 标准库中的 strcmp() 函数。strcmp() 函数会逐个比较两个字符串的每个字符,如果两个字符串相等,则返...

c语言中比较两个字符串的大小
在C语言中比较字符串大小,可以使用库函数strcmp,也可以自己编写比较函数。1、使用库函数。需要包含头文件string.h。声明为:int strcmp(const char *s1, const char *s2);会根据字典序比较s1和s2, 如果二者相等,则返回0;如果s1较小则返回-1;如果s1较大则返回1。比如 strcmp("123", "123")...

c语言怎么比较两个字符串的大小
1、C语言中字符是使用char来定义的,使用关系运算符(>,<,=)即可对字符进行比较。在编译器中定义a、b两个字符型变量,并为其赋值,按照如图所示编写代码。2、运行代码后,我们可以得到如图所示结果。1表示条件为真,0表示条件为假。3、字符串使用char[]来定义,可以使用strcmp()来判断大小,也可以...

C语言编程-用数组方法编写函数strcmp,比较两个字符串的大小。
char fun(char s,char t)\/\/对两个字符串比较 { char ss=s,*tt=t;while((*ss)&&(*tt)){ ss++;tt++;} if(*tt)return(t);else return(s);} main(){ char a[20],b[10],*p,*q;int i;printf("Input 1th string:");gets(a);printf("Input 2th string:");gets(b);printf...

C语言怎么比较两个字符串大小?
两个字符串s1和s2,若s1=s2时,返回值为0;若s1不等于s2时,返回它们二者第一个不同字符的ASCII码差值(如"BOY"与"BAD",第二个字母不同,"O"与"A"之差为79-65=14)。如果s1 > s2,则输出正值;如果s1 < s2,则输出负值。答案:include<stdio.h> include<string.h> define N 30 void...

c语言字符串比较
答案:在C语言中,可以使用strcmp函数来比较两个字符串。详细解释:1. strcmp函数的基本用法:C语言中的字符串比较通常是通过`strcmp`函数来实现的。这个函数比较两个字符串s1和s2,并返回一个整数值。如果返回值是0,那么两个字符串相等;如果返回值小于0,那么s1小于s2;如果返回值大于0,那么s1大于...

c语言编程 写一个函数,实现两个字符串的比较,即写一个类似于strcmp功能...
include <stdio.h> int strcmp(char *s1, char *s2){ while((*s1++ == *s2++)&& *s1);return (*s1 - *s2);} void main(){ char a[10], b[10];gets(a);gets(b);printf("%d\\n", strcmp(a, b));}

如何用C语言编写一程序,实现对两个字符串进行比较,然后输出两个字符串...
1、首先比较字符串的大小,我们可以直接用比较符号来比较就行了,比如大于符号。2、运行后,得到结果,因为'abc'这个字符串是小于‘cde’这个字符串的,所以结果显示为false是对的。3、除了用大于来比较,我们还可以用等号来比较,这也是经常用来比较字符串的符号,比如比较输入密码和数据库的密码是否相等...

用C语言写一个比较两个字符串大小的程序,字符串大小由键盘输入。_百度...
include <string.h> int strncmp1(char* a, char* b, int n){ int i = 0;if (a==0 || b==0)return 0;\/* 空指针不作处理*\/ while (i<n && *(a+i) && *(b+i)){ if (*(a+i)>*(b+i))return 1;if (*(a+i)<*(b+i))return -1;i++;} return 0;} main()...

相似回答