strstr和strncmp源码实现
来源:互联网 发布:caffe教学视频免费 编辑:程序博客网 时间:2024/05/21 11:34
extern char *strstr(char *s1, char *s2)
用法:#include <string.h>功能: 找出s2字符串在s1字符串中第一次出现的位置(不包括s2的串结束符)
返回结果:返回该位置的指针,如找不到,返回空指针。
源码实现:
char *strstr( const char *s1, const char *s2 )
{
int len2;
if ( !(len2 = strlen(s2)) )
return (char *)s1;
for ( ; *s1; ++s1 )
{
if ( *s1 == *s2 && strncmp( s1, s2, len2 )==0 )
return (char *)s1;
}
return NULL;
}
int strncmp ( char * s1, char * s2, size_t n)
用法:#include <string.h>
功能: 比较字符串s1和s2的前n个字符.
返回结果:如果前n字节完全相等,返回值就=0;在前n字节比较过程中,如果出现s1[n]与s2[n]不等,则返回(s1[n]-s2[n])
源码实现:
int strncmp ( char * s1, char * s2, size_t n)
{
if ( !n )//n为无符号整形变量;如果n为0,则返回0
return(0);
//在接下来的while函数中
//第一个循环条件:--n,如果比较到前n个字符则退出循环
//第二个循环条件:*s1,如果s1指向的字符串末尾退出循环
//第二个循环条件:*s1 == *s2,如果两字符比较不等则退出循环
while (--n && *s1 && *s1 == *s2)
{
s1++;//S1指针自加1,指向下一个字符
s2++;//S2指针自加1,指向下一个字符
}
return( *s1 - *s2 );//返回比较结果
}
转自:http://blog.sina.com.cn/s/blog_4af62c070100ppit.html
http://baike.baidu.com/view/1028547.htm
- strstr和strncmp源码实现
- strstr和strncmp源码实现
- Implement strStr() strncmp实现strstr()
- 仰视源码,实现strstr和find
- 模拟实现strcpy,strcmp,strstr,strncpy,strncmp,strcat,strlen函数
- 实现strcmp( )和strncmp( )函数
- strncmp源码
- strcmp()和strncmp()函数的实现
- strncmp和strncat库函数的实现。
- [C语言]模拟实现strcpy/strncpy/strcat/strncat/strcmp/strncmp/strstr
- 模拟实现strcmp,strncmp,strstr,strcat,strncat,strcpy,strncpy,strlen ,memcpy,memmove等函数
- c语言中部分限制字符函数的实现strncmp,strncat,strncpy,strstr,strrstr
- strcmp/strncmp源码分析
- string - strncmp源码
- string库之模拟实现strcmp、strncmp和memcmp
- 模拟实现C库函数:strncpy、strncat和strncmp
- strstr 源码
- strstr源码
- Intent对象中内置的Flag总结
- C++个字符串之间转换
- #include <algorithm>中的algorithm 什么时候需要用到
- BI项目中的ETL
- Fixlib函数文档——介绍
- strstr和strncmp源码实现
- 下载chrome代码并编译
- java 拦截器、过滤器、监听器
- 团队补充新人的要点分析
- js图片无缝滚动代码
- 类的静态成员函数以及与别的函数区别
- v$session中的saddr,paddr和taddr
- 黑马程序员 03选择排序,冒泡排序,折半查找
- Berkeley DB的几个概念