C语言 strncmp()
函数用于比较两个字符串的前n个字节,它是一个区分大小的函数。它是C语言的字符串函数之一。
语法
语法如下:int strncmp(char *s1,char * s2, int n)
参数
- s1:指定要比较的第一个字符串。
- s2:指定要比较的第二个字符串。
- n: 指定比较两个字符串的前n个字符。
功能
比较字符串s1和s2的前n个字符的不同。
比较的原理是对字符串s1和s2逐个字符进行比较,当第一次出现不同的时候,对它们的ASCII码值进行比较并返回结果。
返回值
返回int类型。
- 当s1<s2时,返回值<0
- 当s1=s2时,返回值=0
- 当s1>s2时,返回值>0
程序示例
介绍3个例子,了解C语言 strncmp ()
函数的使用方法。
例1
比较结果等于0的例子
#include <stdio.h>
#include <string.h>
int main(){
char *s1 = "yxjc123.com"; //第一个字符串
char *s2 = "yxjc123.com" ;//第二个字符串
int r1 = strncmp(s1, s2, 6);
printf("s1和s2的比较结果:%d", r1); //完全相同
return 0;
}
程序运行结果:
s1和s2的比较结果:0
例2
比较结果大于0的例子
#include <stdio.h>
#include <string.h>
int main(){
char *s1 = "yxjc123.com"; //第一个字符串
char *s2 = "yxjc123" ;//第二个字符串
int r1 = strncmp(s1, s2, 8);
printf("s1和s2的比较结果:%d", r1); //大于
return 0;
}
程序运行结果:
s1和s2的比较结果:46
例3
比较结果小于0的例子,区分大小写。
#include <stdio.h>
#include <string.h>
int main(){
char *s1 = "yxJc123.com"; //第一个字符串
char *s2 = "yxjc" ;//第二个字符串
int r1 = strncmp(s1, s2, 6);
printf("s1和s2的比较结果:%d", r1); //小于
return 0;
}
程序运行结果:
s1和s2的比较结果:-32
我们看到,虽然s1字符串长度大于s2但是因为是逐个比较,第一次出现不同的是J和j字符,它们相差32,所以返回结果为-32。
上面的例子是比较前6个字符,如果改为2,它们又相等了,因为它们的前2个字符相同。
#include <stdio.h>
#include <string.h>
int main(){
char *s1 = "yxJc123.com"; //第一个字符串
char *s2 = "yxjc" ;//第二个字符串
int r1 = strncmp(s1, s2, 2);
printf("s1和s2的比较结果:%d", r1); //小于
return 0;
}
输出:s1和s2的比较结果:0