您的位置:首页 > 其它

C的内存和字符串比较函数

2010-11-06 15:53 246 查看
一、比较函数
1、bcmp
#include <string.h>
int bcmp ( const void *s1,const void * s2,int n);
用来比较s1和s2所指的内存区间前n个字节,若参数n为0,则返回0,即如果s1=s2或n=0则返回零,否则返回非零值。bcmp不检查NULL。建议使用memcmp()取代。
2、memcmp
#include<string.h>
int memcmp (const void *s1,const void *s2,size_t n);
用来比较s1和s2所指的内存区间前n个字符。字符串大小的比较是以ASCII码表上的顺序来决定,此顺序亦为字符的值。memcmp()首先将s1第一个字符值减去s2第一个字符的值,若差为0则再继续比较下个字符,若差值不为0则将差值返回。例如,字符串"Ac"和"ba"比较则会返回字符'A'(65)和'b'(98)的差值(-33)。
若参数s1和s2所指的内存内容都完全相同则返回0值。s1若大于s2则返回大于0的值。s1若小于s2则返回小于0的值。
3、memicmp
比较内存区域buf1和buf2的前count个字节但不区分字母的大小写。memicmp同memcmp的唯一区别是memicmp不区分大小写字母。
4、strcmp
#include<string.h>
int strcmp(const char *s1,const char *s2);
strcmp()用来比较参数s1和s2字符串。字符串大小的比较是以ASCII 码表上的顺序来决定,此顺序亦为字符的值。它一直比较到字符串结束('/0'),区分大小写
5、strcoll
#include<string.h>
int strcoll( const char *s1, const char *s2);
strcoll()会依环境变量LC_COLLATE所指定的文字排列次序来比较s1和s2 字符串。
若参数s1和s2字符串相同则返回0。s1若大于s2则返回大于0的值。s1若小于s2则返回小于0 的值。
若LC_COLLATE为"POSIX"或"C",则strcoll()与strcmp()作用完全相同。
6、stricmp,strcmpi
#include <string.h>
int stricmp(char *s1,char * s2);
比较字符串s1和s2,但不区分字母的大小写。
strcmpi是到stricmp的宏定义,实际未提供此函数。
7、strncmp
#include <string.h>
int strncmp(char *s1,char * s2,int n);
比较字符串s1和s2的前n个字符。
8、strnicmp,strncmpi
#include <string.h>
int strnicmp(char *s1,char * s2,int n);
比较字符串s1和s2的前n个字符但不区分大小写。
strncmpi是到strnicmp的宏定义
9、strncasecmp
#include<string.h>
int strncasecmp(const char *s1,const char *s2,size_t n);
strncasecmp()用来比较参数s1和s2字符串前n个字符,比较时会自动忽略大小写的差异。
若参数s1和s2 字符串相同则返回0。s1 若大于s2则返回大于0的值,s1若小于s2则返回小于0 的值。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐