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 的值。
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 的值。
相关文章推荐
- 字符串和内存数据比较函数
- mysql截取函数常用方法 即mysql 字符串 截取-- - 最后带上java字符串截取规则比较
- centos shell编程5 LANMP一键安装脚本 lamp sed lnmp 变量和字符串比较不能用-eq cat > /usr/local/apache2/htdocs/index.php <<EOF重定向 shell的变量和函数命名不能有横杠 平台可以用arch命令,获取是i686还是x86_64 curl 下载 第三十九节课
- C语言strcmp()函数:比较字符串(区分大小写)
- 字符串string和内存流MemoryStream及比特数组byte[]互转比较
- C#中使用Equals()函数比较两个字符串是否相同
- 使用strncmp()函数比较两个字符串指定数量的字符
- JavaScript截取字符串的Slice、Substring、Substr函数详解和比较
- 高效的忽略大小写的字符串替换(Replace)函数(多种方法比较)
- 几个字符串和内存操作函数
- 编写函数,从一个字符串中按字节数截取一部分,但不能截取出半个中文(GBK码表),两种方法的比较。
- 字符串比较函数收获
- 用函数处理字符串(提取/比较)
- 写一函数,实现两个字符串的比较
- 一些字符串及内存操作的函数
- 模拟实现字符串操作函数(strcpy,strstr,strcat,strcmp,strlen)与内存操作函数(memcpy,memmove)
- Linux C 函数参考之内存及字符串操作篇
- 字符串数组排序(qsort参数 比较函数)
- PHP常用字符串正则替换及剖分函数比较
- 字符串操作(拷贝,比较,拼接等函数)