C语言标准库源码(string 部分)(国外英文资料)
C语言标准库源码(string 部分)(国外英文资料)
C语言字符串处理标准库函数的源码(转)
的ifndef __HAVE_ARCH_STRNICMP
/ * *
* strnicmp -大小写不敏感,长度有限的字符串比较
* @s1:一个字符串
@ s2:另一个字符串
@ len:用于比较的最大字符数
* /
int . strnicmp(const char * s1,const char * s2,size_t len)
{
/是的,维吉尼亚,最好是无符号的* /
无符号字符c1,c2;
c1 = 0;c2 = 0;
如果(len){
{做
c1 = * s1;c2 = * s2;
s1 + +,s2 + +;
如果c1(!)
打破;
如果(c2)!
打破;
如果(c1 = = c2)
继续;
c1 =低(c1);
c2 =低(c2);
如果(c1 != c2)
打破;
},(len);
}
返回(int)c1 - c2(int);
}
# endif
char * ___strtok;
的ifndef __HAVE_ARCH_STRCPY
/ * *
* strcpy -复制% NUL终止字符串
@最大:在哪里复制字符串到哪里
从哪里复制字符串
* /
char * strcpy(char *最,const char * src)
{
char * tmp =桌子;
while(最重要的是+ + = * src + +)!= ' \ 0 ')
/ * * /;
返回tmp;
}
# endif
的ifndef __HAVE_ARCH_STRNCPY
/ * *
* strncpy -复制一个长度有限的,%零终止的字符串
@最大:在哪里复制字符串到哪里
从哪里复制字符串
* @ count:复制的最大字节数
* *
*注意,与userspace strncpy不同,这不是% nul- pad缓冲区。
但是,如果源超过,结果不会终止% null
* @count字节。
* /
char * strncpy(char *最,const char * src,size_t计数)
{
char * tmp =桌子;
同时(最重要的是)!= ' \ 0 ')
/ * * /;
返回tmp;
}
# endif
的ifndef __HAVE_ARCH_STRCAT
/ * *
* strcat -将一个%的终止字符串附加到另一个
@最大:被追加到的字符串
要附加到它的字符串
* /
char * strcat(char *最,const char * src)
{
char * tmp =桌子;
而(* dest)
桌子+ +;
while(最重要的是+ + = * src + +)!= ' \ 0 ')
;
返回tmp;
}
# endif
的ifndef __HAVE_ARCH_STRNCAT
/ * *
* strncat -将一个长度有限的、% null终止的字符串附加到另一个字符串
@最大:被追加到的字符串
要附加到它的字符串
* @ count:复制的最大字节数
* *
注意,与strncpy不同,strncat确保了结果
*终止。
* /
char * strncat(char *最,const char * src,size_t计数)
{
char * tmp =桌子;
如果(count){
而(* dest)
桌子+ +;
while(+ = * src +){
如果(—count = = 0){
* dest = ' \ 0 ';
打破;
}
}
}
返回tmp;
}
# endif
的ifndef __HAVE_ARCH_STRCMP
/ * *
比较两个字符串
* @cs:一个字符串
* @ct:另一个字符串
* /
int strcmp(const char * cs,const char * ct)
{
注册char __res签署;
而(1){
如果(例如:* cs - * ct + +)!= 0 | | ! * c + +)
打破;
}
返回__res;
}
# endif
的ifndef __HAVE_ARCH_STRNCMP
/ * *
* strncmp -比较两个长度有限的字符串
* @cs:一个字符串
* @ct:另一个字符串
@ count:比较的最大字节数
* /
int strncmp(const char * cs,const char * ct,size_t计数)
{
注册的字符是0;
而(count){
如果(例如:* cs - * ct + +)!= 0 | | ! * c + +)
打破;
数,
}
返回__res;
}
# endif
的ifndef __HAVE_ARC