8.33 C语言,strcmp(a,b)>0是什么意思

作者&投稿:廖律 (若有异议请与网页底部的电邮联系)
c语言中 !strcmp(a,b)是什么意思?注意有个感叹号!~

简单的说就是:
strcmp是个比较函数,用法就是a>b返回1,a<b返回-1,a==b返回0.
C语言规定非0为真,0为假。!号是取非,即把0变成1,非0变成0;
假设a=5,b=4
那么a>b,返回结果为1,取非之后为0,既为假.就不会执行下面的break语句。
假设a=4,b=5
结果为a<b,返回值为-1,取非之后也是0,还是假,也不会执行下面的break语句。

只有当a和b相等时,才会执行break语句,既跳出语句。
比如a=5,b=5时。
a == b,strcmp的返回值稳定为0,取非之后为1,if判断为真,就开始执行break语句

比较两个字符串:
字符串a是否大于字符串b
那么怎么比较呢,我来举几个例子,我不讲内存的方法,你会不理解,我就举几个形象的例子。
1. a = “abcd\0” b = “abce\0” 那么 a < b, 因为其中'd' < 'e'
2. a = “abcd\0” b = “abc\0” 那么 a > b. 因为其中 'd' > '\0',也就是a字符串长度比较长。
3. a = “abcd\0” b = “abcd\0”那么 a = b.因为比较到'\0'为止他们都是相等的。

单个比较字符串a,b的第一个字符,逐次比较下去,直到找到大小界限,或者一方字符串结束了,则结束的那个是小的一方.
具体比较判定是ASCII码值的大小,strcmp(a,b)>0表示a的字符串从前往后比较,某个字符比b的ASCII值大,或者b的字符串只是a的一部分,b结束了,a还有字符串(b和a前面长度为sizeof(b)的每个单个字符都一样的情况下)
1.情况 a: abcd b:abdc a的第三个字符比b大了,之后就不比较了,得strcmp(a,b)>0
2.情况 a:abcdef b:abcde a和b比较了到e,而b字符串没了,a还没结束 则strcmp(a,b)>0.

a字符串等于b字符串则返回0
a字符串元素的ascll码大于b字符串对应的元素则返回大于0,反之返回小于0.

功能:比较字符串s1和s2。
一般形式:strcmp(字符串1,字符串2)
说明:
当a<b时,返回值<0
当a==b时,返回值=0
当a>b时,返回值>0

字符串a大于b的时候:strcmp(a,b)>0

恩,楼上回答的都对。


潘集区18446769542: 8.33 C语言,strcmp(a,b)>0是什么意思 -
厉弦舍尼:[答案] 单个比较字符串a,b的第一个字符,逐次比较下去,直到找到大小界限,或者一方字符串结束了,则结束的那个是小的一方.具体比较判定是ASCII码值的大小,strcmp(a,b)>0表示a的字符串从前往后比较,某个字符比b的ASCII值大,或者...

潘集区18446769542: 在C语言中,strcmp()是什么函数? -
厉弦舍尼: 头文件:#include <string.h> strcmp() 用来比较字符串(区分大小写),其原型为:int strcmp(const char *s1, const char *s2); 【参数】s1, s2 为需要比较的两个字符串.字符串大小的比较是以ASCII 码表上的顺序来决定,此顺序亦为字符的值...

潘集区18446769542: c语言中strcmp的用法 -
厉弦舍尼: strcmp是比较两个字符串的大小,两个字符串相同时返回0,第一个字符串大于第二个字符串时返回一个正值,否则返回负值. 比较两个字符串的算法是:逐个比较两个串中对应的字符,字符大小按照ASCII码值确定,从左向右比较,如果遇到...

潘集区18446769542: c语言中的strcmp字符串比较函数是输入两个指针还是两个字符串? -
厉弦舍尼: int strcmp(char *s1,char * s2); 这里char *s1可以是一个字符串,其实该函数参数取的是字符串的首地址,一直读取到'\0'结束(字符串型的末尾都有一个字符'\0'),这样就把整个字符串读进去了.所以,也可以用字符串指针的形式,指针就是地址,把字符串的首地址赋值给一个指针p,那么p同样可以是此函数的参数char *s1 两种输入都正确

潘集区18446769542: c语言定义函数实现strcmp功能 -
厉弦舍尼: 在C语言中可以通过定义一个函数来实现这个功能,比如: int compare(char a[22],b[22]) { int i=0; while(a[i]==b[i]&&i<22) i++; if(i==21) return 1; else return 0; } 就这么多就行了,strcmp函数返回的值是如果比较相同则返回0,否者返回非零值,上面我定义的函数遵循这一规则. 用的时候有两种方法: 1》先声明,后主函数调用,再最后写上上面的定义函数 2》先定义上面的函数,主函数直接调用(这样不用声明了)

潘集区18446769542: C语言中,strcmp( )是什么函数? -
厉弦舍尼: 函数名: strcmp 功 能: 串比较 用 法: int strcmp(char *str1, char *str2); 程序例: #include#includeint main(void) { char *buf1 = "aaa", *buf2 = "bbb", *buf3 = "ccc"; int ptr; ptr = strcmp(buf2, buf1); if (ptr > 0) printf("buffer 2 is greater ...

潘集区18446769542: C语言这段strcmp代码是什么意思 -
厉弦舍尼: char a[20], b[20]; strcmp(a,b)是比较ab两个字符串的大小 如果strcmp(a,b)==0,说明ab字符串相等 如果strcmp(a,b)>0,说明a字符串大于b字符串,也就是a的字母顺序应该在b后面 ----比如"abcd">"aabc", "bcde">"abcd" 如果strcmp(a,b)<0,说明a字符串小于b字符串,也就是a的字母顺序应该在b前面

潘集区18446769542: c语言中的strcmp函数 -
厉弦舍尼: 函数原型:extern int strcmp(const char *s1,const char *s2); 函数功能:以ascii码值比较两个字符串的大小,当s1<s2时,返回为负数,当s1=s2时,返回值= 0,当s1>s2时,返回正数.头文件:#include <string.h> 参数说明:两个比较字符串的首地址指针.注意事项:strcmp(const char *s1,const char * s2)这里面只能比较字符串,即可用于比较两个字符串常量,或比较数组和字符串常量,不能比较数字等其他形式的参数.

潘集区18446769542: 用C语言实现:strcmp(str1,str2)函数,比较两个字符串的大小(不区分大小写) -
厉弦舍尼: unsigned int strcmp(const char *str1, const char *str2) const {while(((*(str1++)==*(str2++))) && *str1 && *str2 ); return (*str1-*str2); }不区分大小写:可以把位于'A'-'Z'之间的字符加上32可变为'a'-'z'之间的字符后再调用上述函数.

潘集区18446769542: C语言字符串处理函数strcmp -
厉弦舍尼: 因为C语言中,数组初始化时,如果给定的初始值个数小于数组长度,那么后面的剩余元素将被自动初始化为0,也就是字符串的结束标志'\0'strcmp()函数就是用于查找两个以'\0'结束的字符串中的第一个不相同的字符的ASCII值之差,如果将数组长度改为5,那么strcmp函数在前5个字符中找不到结束标志,又因为程序不会对边界进行检查,所以会一直找下去,而此时,早已越界,所以会输出不可预见的结果.

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