内核中的str函数
来源:互联网 发布:杭州开创网络 编辑:程序博客网 时间:2024/06/06 03:37
代码选自uboot_tiny4412/lib
1、 strcmp
#ifdef _HAVE_ARCH_STRCMPint strcmp(const char *cs,const char *ct){ register signed char _res; while(1) { if((_res = *cs - *ct++) != 0 || !cs++) break; } return _res;}#endif
2、 strncmp
#ifndef _HAVE_ARCH_STRNCMPint strcnmp(const char *cs,const char *ct,size_t count){ register signed char _res = 0; while(count) { if((_res = *cs - *ct++) != 0)|| !*cs++) break; count--; } return _res;}#endif
3、 strcat
#idndef _HAVE_ARCH_STRCATchar *strcat(char *dest,const char *src){ char *tmp = dest; while(*dest) dest++; while((*dest++ = *src++) != '\0'); return tmp;}#endif
4、 strncat
#ifndef _HAVE_ARCH_STRNCATchar *strncat(char *dest,const char *src,size_t count){ char *tmp = dest; if(count) { while(*dest) dest++; while(*dest++ = *src++) { if(--count == 0) { *dest = '\0'; break; } } } return tmp;}#endif
5、 strcpy
#ifdef _HAVE_ARCH_STRCPYchar *strcpy(char *dest,const char *src){ char *tmp = dest; while((*dest++ = *src++)!= '\0') /*nothing*/; return tmp;}#endif
6、 strncpy
#ifndef _HAVE_ARCH_STRNCPYchar *strcnpy(char *dest,const char *src,size_t count){ char *tmp = dest; while(count-- &&(*dest++ = *src++) != '\0') /*nothing*/ return tmp;}#endif
7、 strspn
#ifndef _HAVE_ARCH_STRSPNsize_t strspn(const char* s,const char *accept){ const char *p; const char *a; size_t count = 0; for(p = s;*p != '\0';++p) { for(a = accept;*a != '\0';++a) { if(*p == *a) break; } if(*a == '\0') return count; ++count; } return count;}#endif
8、 strpbrk
#ifndef _HAVE_ARCH_STRPBRKchar *strpbrk(const char *cs,const char *ct){ const char *sc1,*sc2; for(sc1 = cs;*sc1 != '\0';++sc1) { for(sc2 = ct;*sc2 != '\0';++sc2) { if(*sc1 == *sc2) return(char *) sc1; } } return NULL;}#endif
9、 strtok
#ifndef _HAVE_ARCH_STRTOKchar *strtok(char *s,const char *ct){ char *sbegin,*send; sbegin = s ? s:_strtok; if(!sbegin) { return NULL; } sbegin += strspn(sbegin,ct); if(*sbegin == '\0') { _strtok = NULL; return(NULL); } send = strpbrk(sbegin,ct); if(send && *send != '\0') *send++ = '\0'; _strtok = send; return (sbegin);}endif
阅读全文
0 0
- 内核中的str函数
- python中的字符串格式函数str.format()
- python中的字符串格式函数str.format()
- Str函数
- str()函数
- 教你用恶心的strtok函数来恶意修改const string &str 中的str
- Python 中的lower()、upper()函数和str\chr
- python 中的%s和%r、str.format()函数
- JSTL中的常用EL函数(fn:contains(str,subStr))
- char * str中的str(%s),*str,str(地址),&str,&str[0]之间的不同关系
- 内核中的kmalloc函数详解
- 内核中的函数指针三要素
- 内核中的中断函数request_irq()
- 内核中的kmalloc函数详解
- 内核中的中断函数request_irq()
- Linux内核中的cmpxchg函数
- 内核中的kmalloc函数详解
- linux内核中的typecheck函数
- POJ-3177(tarjan缩点)
- 129 C语言FILE结构体以及缓冲区深入探讨
- 原生js实现ajax的一个简单demo
- CSS的sprite图片处理
- 左旋转字符串
- 内核中的str函数
- 130 C语言获取文件大小(长度)
- Spring boot读取配置文件总结
- Linux网络状态工具ss命令使用详解
- MediaRecorder录制音频文件
- effectivecpp
- 新手第一次使用hibernate 连接 oracle数据库个人体会
- 131 C语言插入、删除、更改文件内容
- dbgrideh 显示单价