如何在C语言中比较字符串的大小?

作者&投稿:植供 (若有异议请与网页底部的电邮联系)
~

在C语言中比较字符串大小,可以使用库函数strcmp,也可以自己编写比较函数。 

1、使用库函数。 

需要包含头文件string.h。声明为:

int strcmp(const char *s1, const char *s2);

会根据字典序比较s1和s2, 如果二者相等,则返回0;如果s1较小则返回-1;如果s1较大则返回1。

比如

strcmp("123", "123") 结果为0。

strcmp("123", "456") 结果为-1。

strcmp("456", "123") 结果为1。

2、自定义函数。

实现字符串比较的方法有很多,其基本原理为按字节比较。

举例如下:

int my_strcmp(char *s1, char *s2)
{
    int i;
    for(i = 0; s1[i] == s2[i] && s1[i]!=0; i++);//循环比较,达到结束或者出现不相等值时退出循环。 
    
    if(s1[i] == s2[i]) return 0;//代表全部相等,返回0
    if(s1[i]<s2[i]) return -1;//s1较小,返回-1。
    return 1;//s1较大,返回1.
}



51单片机c语言中的“=”和“==”有什么不同
“=”是赋值操作,“==”是比较操作。

C语言里的&和=有何区别?
<<= 同上,只不过是左移赋值。&= 是按位与之后赋值,^=是按位异或之后赋值,|=是按位或之后赋值。与,或以及异或的操作很简单:<<= 同上,只不过是左移赋值。&= 是按位与之后赋值,^=是按位异或之后赋值,|=是按位或之后赋值。与,或以及异或的操作很简单:...

c语言初学者~~ 例如i=2和i==2区别何在呢???
i=2的意思是将2的值赋予i,也就是说现在i的值是2;而i==2是看他们相等吗,也就是说i的值不知道,看他是2吗,如果是这个语句就为真,如果不是,这个语句就为假!参考资料:自己手打。

C语言 在字符串中找到最长单词
实现本功能,需要按以下步骤进行程序设计:1、确定单词分隔符,一般情况为空格和标点符号,根据题目情况来确定标点符号是否算在单词中。 假定单词不包括标点符号,即全由字母组成2、根据上面的特点,读取一个单词3、计算单词长度4、与当前最大单词长度max(初值为0)比较,如果大于max,则记录下当前单词,...

C语言中的a<b<c何解???
既不是“a小于b 同时a小于c ”也不是"a<b<c"相当于"a<b && b<c"是a<b的结果与c进行比较 而a<b的结果只能是0或者1,用0或者1和c进行比较 比如a是2,b是1,c是1 那么a<b<c的过程如下 a2<1=>0 0<c=>0<1=>1 a<b<c的结果就是1 onyourmark111不懂别装懂 误人子弟就是你...

c语言中&是什么意思
c语言中&有两种意思,一种是取地址符,是单目运算符;另一种是位运算符,表示“按位与”,是双目运算符。C语言是一门面向过程的、抽象化的通用程序设计语言,广泛应用于底层开发。一、何为c语言 C语言是一门面向过程的计算机编程语言,与C++、Java等面向对象编程语言有所不同。C语言的...

C语言中,想要给一个变量个赋值为汉字,该变量应该是什么数据类型的啊...
那么它占用两个字节,需要用short类型。2。如果你输入的汉字时宽字节(UNICODE),那么它也是占用连个字节,使用short就可以了。3。如果你输入的汉字是多字节(UTF8),那么很不幸,它可能是1~3字节,所以最好使用long类型。char - 1字节 short - 2字节 long - 4字节 贴出你的代码,再来说事。

c语言中字符串和数字123有何区别?
是大写字母S至于原因么,在C语言中\\是转义字符,比如我们常用的\\n代表回车实际上我们还可以用\\+数字的形式输出ascii表的字符但这里\\后面的数字默认为8进制也就是说\\123中的123是个8进制数123换算成十进制83 在ascii表中代表字母S有不懂的可以继续一起讨论 祝学业有成 ...

c语言中->和.有何区别?
c语言中->和.的区别为:性质不同、指向不同、访问不同。一、性质不同 1、->:->是指向结构体成员运算符。2、.:.是断点符号,不属于运算符。二、指向不同 1、->:->所指向的是结构体或对象的首地址。2、.:.所指向的是结构体或对象。三、访问不同 1、->:->的用处是使用一个指向以便...

学习C语言需要掌握哪些基本知识?
C语言中存储类别又分为四类:自动(auto)、静态(static)、寄存器的(register)和外部的(extern) ; 用关键字auto定义的变量为自动变量,auto可以省略,auto不写则隐含定为“自动存储类别”,属于动态存储方式。 用static修饰的为静态变量,如果定义在函数内部的,称之为静态局部变量;如果定义在函数外部,称之为静态外部变量...

工布江达县18831115775: 在C语言中字符串的大小怎么比较啊? -
怀康清凉: strcmp原型:extern int strcmp(char *s1,char * s2);用法:#include <string.h>功能:比较字符串s1和s2.说明:当s1<s2时,返回值<0当s1=s2时,返回值=0当s1>s2时,返回值>0即:两个字符串自左向右逐个字符相比(按ASCII值大小...

工布江达县18831115775: c语言中比较两个字符串的大小,应该怎么做? -
怀康清凉: 一:(这个调用了 string.h 头函数) #include <stdio.h> #include <string.h>void comparision(char a[],char b[]) {if(strcmp(a,b)>0) printf("a[40]>b[40]");else if(strcmp(a,b)==0) printf("a[40]=b[40]");else printf("a[40]<b[40]"); } main(void) {...

工布江达县18831115775: c语言中怎么比较字符串的大小………… -
怀康清凉: 头文件#include<string.h> 字符串比较函数:strcmp 语法形式: strcmp(str1, str2); /*str1和str2为已定义好的两个字符数组*/ 功能:将str1与str2进行比较,若str1大于str2,则返回正值,若str1与str2相等,则返回0,若str1小于str2,则返回负值.

工布江达县18831115775: 在C语言中比较字符串的大小 -
怀康清凉: gets函数知道接收换行符或是eof是停止.而你输入两串字符串的时候只是有空格.改正就是输完一个字符串回车一下

工布江达县18831115775: C语言编程对字符串进行比较大小 -
怀康清凉: 您好,如果只是问个算法,我可以告诉你,但是如果是你要全部 ,那就不可以了,作业要自己做的啊!如果你要用户输入2个字符串作比较的话 可以用“ ”来区分字符串1与字符串2 然后把2个字符串存到2个数组里去比 int i=1,j=1; char a[20],b[20] if (c=getchar()!=" ") then { a[i]=c; i++; } else {b[j]=c; j++; } 然后用for循环一个一个比他们的大小就可以了,如果有一个大了就return 大的值,如果遇到一个数组为空了,也return 另外一个字符串就好了.

工布江达县18831115775: C语言怎么比较两个字符串大小? -
怀康清凉: 两个字符串s1和s2,若s1=s2时,返回值为0;若s1不等于s2时,返回它们二者第一个不同字符的ASCII码差值(如"BOY"与"BAD",第二个字母不同,"O"与"A"之差为79-65=14).如果s1 > s2,则输出正值;如果s1 < s2,则输出负值...

工布江达县18831115775: C语言比较字符串大小 -
怀康清凉: 提供算法可以么..1.放入4个字符串数组比较A[i] B[i] C[i] D[i] 2.设置index数组初始化为index{0};在一轮A B C D 比较后设置已分出顺序的字符串 设置其下标,最小设置为1.其余类推选出仍然为0的index[]继续1 2 循环 直到分出全部下标 若2数组相同则按照数组显示顺序排

工布江达县18831115775: 一个c语言的问题:怎样比较字符串的大小....请教高手啊....
怀康清凉: strcmp 语法: #include &lt;string.h&gt; int strcmp( const char *str1, const char *str2 ); 功能:比较字符串str1 and str2, 返回值如下: 返回值 解释 less than 0 str1 is less than str2 equal to 0 str1 is equal to str2 greater than 0 str1 is greater than ...

工布江达县18831115775: c语言 怎么比较字符串中内容的大小,内容是数字 -
怀康清凉: //如果长度不相等,长度长的大;若长度相等,则按字符串比较. #include<stdio.h> #include<string.h> int cmpnum(char *s,char *t) {if (strlen(s)==strlen(t))return strcmp(s,t);elsereturn strlen(s)-strlen(t); }void main() {char a[]="1234",b[]="...

工布江达县18831115775: 编写一个C语言函数,比较两个字符串的大小
怀康清凉: #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 ...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网