strncmp
来源:互联网 发布:淘宝小蜜是小二吗 编辑:程序博客网 时间:2024/05/20 19:15
strncmp
编辑
int strncmp ( const char * str1, const char * str2, size_t n );
【参数】str1, str2 为需要比较的两个字符串,n为要比较的字符的数目。
字符串大小的比较是以ASCII 码表上的顺序来决定,此顺序亦为字符的值。strncmp()首先将s1 第一个字符值减去s2 第一个字符值,若差值为0 则再继续比较下个字符,直到字符结束标志'\0',若差值不为0,则将差值返回。例如字符串"Ac"和"ba"比较则会返回字符"A"(65)和'b'(98)的差值(-33)。注意:要比较的字符包括字符串结束标志'\0',而且一旦遇到'\0'就结束比较,无论n是多少,不再继续比较后边的字符。
【返回值】若str1与str2的前n个字符相同,则返回0;若s1大于s2,则返回大于0的值;若s1 若小于s2,则返回小于0的值
这个函数用来比较s1和s2字符串的前maxlen个字符。如果两个字符串相等的话,strncmp将返回0。如果s1是s2的一个子串的话,s1小于s2。此外还有,函数 int strncmp (const char *s1, const char *s2, size_t size) 此函数与strcmp极为类似。不同之处是,strncmp函数是指定比较size个字符。也就是说,如果字符串s1与s2的前size个字符相同,函数返回值为0。
int strncmp ( const char * str1, const char * str2, size_t num );
Example 1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include<string.h>
#include<stdio.h>
int
main(
void
)
{
char
*buf1=
"aaabbb"
,*buf2=
"bbbccc"
,*buf3=
"ccc"
;
int
ptr;
ptr=
strncmp
(buf2,buf1,3);
if
(ptr>0)
printf
(
"buffer2 is greater than buffer1\n"
);
elseif(ptr<0)
printf
(
"buffer2 is less than buffer1\n"
);
ptr=
strncmp
(buf2,buf3,3);
if
(ptr>0)
printf
(
"buffer2 is greater than buffer3\n"
);
elseif(ptr<0)
printf
(
"buffer2 is less than buffer3\n"
);
return
(0);
}
1
2
3
ouput:
buffer2 is greater than buffer1
buffer2 is less than buffer3
Example 2
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
/*strncmpexample*/
#include<stdio.h>
#include<string.h>
int
main()
{
char
str[][5]={
"R2D2"
,
"C3PO"
,
"R2A6"
};
int
n;
puts
(
"Looking for R2 as tromechdroids..."
);
for
(n=0;n<3;n++)
{
if
(
strncmp
(str[n],
"R2xx"
,2)==0)
{
printf
(
"found%s\n"
,str[n]);
}
//return0;//return位置不对哦
}
return0;
}
1
2
3
4
ouput:
Looking for R2 as tromechdroids...
foundR2D2
foundR2A6
函数名: strncmp ()
功 能:比较字符串的前N个字符
用 法:
1
intstrncmp(stringstr1,charstr2,intlen);
说明:比较字符串str1和str2的大小,如果str1小于str2,返回值就<0,反之如果str1大于str2,返回值就>0,如果str1等于str2,返回值就=0,len指的是str1与str2的比较的字符数。此函数功能即比较字符串str1和str2的前len个字符[1] 。
提示:该函数区分大小写。
示例:
1
2
3
4
5
<?php
$str1
=
"Ilikephp!"
;
$str2
=
"ianfine!"
;
echostrncmp(
$str1
,
$str2
,2);
?>
结果为:-1
0 0
- strncmp
- strncmp
- strncmp
- strncmp
- strncmp
- strncmp
- strncmp
- strncmp
- strncmp函数
- strncmp.c
- strncmp() 函数
- strncmp() 函数
- strncmp函数
- strncmp 函数
- strcmp() , strncmp();
- strncmp函数
- strncmp函数
- strncmp源码
- dpkg: error: unknown option --add-architecture
- 《算法导论》读书笔记(三)
- 解决windows 远程桌面链接的问题 3389端口不能访问
- 查看mysql实际执行语句(被mysql优化后执行的sql)
- Promise初体验
- strncmp
- BRISK算法
- android6 要素2,应用链接
- 微信读书 iOS 性能优化总结
- Android 沉浸式(一)
- windows文件关联、打开方式列表之修改注册表攻略
- Android Error:Execution failed for task ':charts:clean'. > Unable to delete directory:
- Shell until循环
- Android 图片SD卡缓存 使用简单 支持预取 支持多种缓存算法 支持不同网络类型 支持序列化 (八)