0
点赞
收藏
分享

微信扫一扫

C语言 比较字符串的大小关系

头文件

原型

说明

返回值

#include<stdio.h>

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

比较s1指向的字符串和s2指向的字符串的大小关系(从第一个字符开始逐一比较,当出现不同的字符时,便可确定这些字符的大小关系)。

若s1 和 s2相等,则返回0;若s1 大于 s2,则返回正整数值;若s1 小于 s2,则返回负整数值。

#include <stdio.h>
#include <string.h>

int&nbsp;main(void){
char&nbsp;str[]&nbsp;=&nbsp;&quot;1&quot;;
char&nbsp;*p&nbsp;=&nbsp;&quot;2&quot;;

if(strcmp(str,&nbsp;p)&nbsp;==&nbsp;0){
puts(&quot;str&nbsp;等于&nbsp;*p&quot;);
}else&nbsp;if(strcmp(str,&nbsp;p)&nbsp;&gt;&nbsp;0){
puts(&quot;str&nbsp;大于&nbsp;*p&quot;);
}else{
puts(&quot;str&nbsp;小于&nbsp;*p&quot;);
}

return&nbsp;0;
}

运行结果:
C语言 比较字符串的大小关系_字符串

strcmp函数实现:

int&nbsp;strcmp(const&nbsp;char&nbsp;*s1,&nbsp;const&nbsp;char&nbsp;*s2){
while&nbsp;(*s1&nbsp;==&nbsp;*s2){
if(*s1&nbsp;==&nbsp;&#39;\0&#39;){
return&nbsp;0;
}
s1++;
s2++;
}

return&nbsp;(unsigned&nbsp;char)*s1&nbsp;-&nbsp;(unsigned&nbsp;char)*s2;
}

strncmp函数指定前n个字符串进行比较

头文件

原型

说明

返回值

#include<stdio.h>

int strncmp(const char *s1, const char *s2, size_t n)

比较s1指向的字符的数组和s2指向的字符的数组的前n个字符的大小关系。

若s1 和 s2相等,则返回0;若s1 大于 s2,则返回正整数值;若s1 小于 s2,则返回负整数值。

#include <stdio.h>
#include <string.h>

int&nbsp;main(void){
char&nbsp;str[]&nbsp;=&nbsp;&quot;423&quot;;
char&nbsp;*p&nbsp;=&nbsp;&quot;192&quot;;

if(strncmp(str,&nbsp;p,&nbsp;2)&nbsp;==&nbsp;0){
puts(&quot;str&nbsp;等于&nbsp;*p&quot;);
}else&nbsp;if(strncmp(str,&nbsp;p,&nbsp;2)&nbsp;&gt;&nbsp;0){
puts(&quot;str&nbsp;大于&nbsp;*p&quot;);
}else{
puts(&quot;str&nbsp;小于&nbsp;*p&quot;);
}

return&nbsp;0;
}

运行结果:
C语言 比较字符串的大小关系_字符串_02

strncmp函数实现:

int&nbsp;strncmp(const&nbsp;char&nbsp;*s1,&nbsp;const&nbsp;char&nbsp;*s2,&nbsp;size_t&nbsp;n){
while&nbsp;(n&nbsp;&amp;&amp;&nbsp;*s1&nbsp;&amp;&amp;&nbsp;*s2){
if(*s1&nbsp;!=&nbsp;*s2){
return&nbsp;(unsigned&nbsp;char)*s1&nbsp;-&nbsp;(unsigned&nbsp;char)*s2;
}
s1++;
s2++;
n--;
}

if(!n){
return&nbsp;0;
}

if(*s1){
return&nbsp;1;
}

return&nbsp;-1;
}

总结:

  • strcmp函数 和strncmp函数对字符串大小的判断,是基于字符编码进行的。字符编码表示字符的值,它依赖于该环境中采用的字符编码体系。
  • strcmp函数 和strncmp函数不能进行具有可移植性(不依赖于运行环境中采用字符编码等)的字符串的比较。
  • strncmp函数开头n个字符内没有null字符也可以进行比较(不是字符串也可以进行比较)。


举报

相关推荐

0 条评论