strcasecmp,strncasecmp函数实现——strings.h库函数
来源:互联网 发布:java图形化 编辑:程序博客网 时间:2024/05/17 06:56
strcasecmp和strncasecmp函数相当于windows下的stricmp和strnicmp函数!
信息来自RHEL,man page:STRCASECMP(3) Linux Programmer's Manual STRCASECMP(3)NAME strcasecmp, strncasecmp - compare two strings ignoring caseSYNOPSIS #include <strings.h> int strcasecmp(const char *s1, const char *s2); int strncasecmp(const char *s1, const char *s2, size_t n);DESCRIPTION The strcasecmp() function compares the two strings s1 and s2, ignoring the case of the characters. It returns an integer less than, equal to, or greater than zero if s1 is found, respectively, to be less than, to match, or be greater than s2. The strncasecmp() function is similar, except it compares the only first n bytes of s1.RETURN VALUE The strcasecmp() and strncasecmp() functions return an integer less than, equal to, or greater than zero if s1 (or the first n bytes thereof) is found, respectively, to be less than, to match, or be greater than s2.CONFORMING TO 4.4BSD, POSIX.1-2001.
函数实现:
strcasecmp()函数实现:
0.功能描述:
功能参照strcmp(传送门:http://blog.csdn.net/riyadh_linux/article/details/50021381)函数,区别之处在于该函数比对时不区分大小写。
字符串比较函数,
逐字符
比较字符串s1(source)
和字符串s2(dest)
:
源字符串大于
目标字符串时—-> 返回字符串s1从前往后第一个大于字符串s2的对应字符ASCII差值(为正)
源字符串小于
目标字符串时—-> 返回字符串s1从前往后第一个小于字符串s2的对应字符ASCII差值(为负)
源字符串等于
目标字符串时—-> 返回0
1.原型:
#include <strings.h>int strcasecmp(const char *s1, const char *s2);
2.参数:
s1即源字符串。
s2目标字符串。
3.实现:
//定义FALSE宏值#define FALSE ('Z' - 'A')#define DIFF_VALUE ('a' - 'A')int my_strcasecmp(const char *s1, const char *s2){ int ch1 = 0; int ch2 = 0; //参数判断 if(NULL == s1 || NULL == s2){ return FALSE; } //逐个字符查找比对,并记录差值 do{ if((ch1 = *((unsigned char *)s1++)) >= 'A' && ch1 <= 'Z'){ *s1 += DIFF_VALUE; } if((ch2 = *((unsigned char *)s2++)) >= 'A' && ch2 <= 'Z'){ *s2 += DIFF_VALUE; } }while(ch1 && ch1 == ch2); return ch1 - ch2;}
strncasecmp()函数实现:
0.功能描述:
参照strcasecmp函数,区别之处在于,逐个字符比对,判断前n个字符。并且当n为零时,返回为零
1.原型:
#include <strings.h>int my_strncasecmp(const char *s1, const char *s2, size_t n)
2.参数:
s1,s2:对应strcasecmp函数
n:用来标示此函数应对比前n个字符
3.实现:
#define DIFF_VALUE ('a' - 'A')#define FALSE ('z' - 'A')int my_strncmp(const char *s1, const char *s2, size_t n){ int ch1 = 0; int ch2 = 0; if(NULL == s1 || NULL == s2 || 0 > n){ return FALSE; } if(0 == n){ return 0; } do{ if((ch1 = *(unsigned char *)s1++) >= 'A' && (ch1 <= 'Z')){ ch1 += DIFF_VALUE; } if((ch2 = *(unsigned char *)s2++) >= 'A' && (ch2 <= 'Z')) }while(n-- && ch1 && (ch1 == ch2)); return ch1 - ch2;}
=============文章结束==============
小菜总结,如有不当,欢迎批评!
3 0
- strcasecmp,strncasecmp函数实现——strings.h库函数
- strcasecmp和strncasecmp函数
- php strcasecmp()与strncasecmp()函数
- strcasecmp函数和strncasecmp函数原型
- strcasecmp函数和strncasecmp函数原型
- strcasecmp 函数 与 strncasecmp函数的介绍
- strcasecmp函数和strncasecmp函数原型
- PHP字符串函数之 strcmp strncmp strcasecmp strncasecmp strnatcmp strnatcasecmp
- strncasecmp与strcasecmp用法
- strcmp() strcasecmp() strncasecmp() strlen()
- strncasecmp与strcasecmp用法
- strcasecmp()和strncasecmp()比较
- strncasecmp与strcasecmp用法
- strcmp,strcasecmp和strncasecmp
- strncasecmp与strcasecmp用法
- strcpy,strncpy函数实现——string.h库函数
- strlen函数实现——string.h库函数
- strcat,strncat函数实现——string.h库函数
- java 打印图形
- java 打印输出九九乘法表.要求:只能使用一个while,不能使用for循环、递归。
- java 日期 Calendar simpleDateFormat
- java 循环报数
- 【知己知彼】:distance between and high quality student(谈到了复习)
- strcasecmp,strncasecmp函数实现——strings.h库函数
- 【jQuery】绑定和解绑点击事件及重复绑定解决办法
- dialog式的Activity
- AIDL问题集锦
- VS2010 将背景设为保护色
- 用commons-fileupload接收不到普通文本框的值的问题分析
- 代理模式 动态代理 AOP
- 搭建一个支持LaTEX的hexo博客
- 高响应比优先调度算法(HRRN)