编写一个C语言函数,比较两个字符串的大小
3个回答
展开全部
#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。
#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。
展开全部
思路:字符串比较大小即两个字符串自左向右逐个字符相比(按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
*/
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
*/
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
要一定是自己编写的话,就用一楼的那个,我看了没有问题。但是建议用vc库函数,因为库函数都是编程高手经过深思熟虑做成的,很健壮。而且经过了时间和大型工程的考验。库函数都是作为精品菜保留下来的。请记住;如果可以使用库函数千万不要自己去写,费时不讨好。
int
strcmp(
const
char
*string1,
const
char
*string2
);
//区分大小写
int
_stricmp(
const
char
*string1,
const
char
*string2
);
//不区分大小写<都转化成小写再比较>
int
strcmp(
const
char
*string1,
const
char
*string2
);
//区分大小写
int
_stricmp(
const
char
*string1,
const
char
*string2
);
//不区分大小写<都转化成小写再比较>
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询