06Linuxwuliqiang.blog.chinaunix.net
linux_wuliqiang
业精于勤,荒于嬉
全部博文(763)
生活小常识(7)
git(3)
Socket(12)
Bash(1)
命令(Commond)(7)
服务器(32)
Linux内核(0)
vi_gcc_gdb_emacs(3)
Makefile(8)
C++容器(7)
项目管理(0)
代码管理(3)
Android(18)
MTK(3)
Iphone(109)
Symbian(0)
点阵字库(3)
环境搭建(1)
寻路算法(2)
字库相关(2)
Unity3D(17)
MD2_3D动画显示(1)
地图相关(11)
Hge Engine(0)
Cocos2d(14)
文件解析(3)
图片解析(11)
OpenGL(53)
游戏架构(1)
ECMAScript(1)
Flash(0)
Html5(11)
Jsp(6)
Eclipse(4)
J2ee_project(0)
文件上传(0)
UI(0)
J2ME(14)
reportTable(0)
2018年(6)
2017年(15)
2016年(2)
2015年(31)
2014年(14)
2013年(87)
2012年(75)
2011年(94)
2010年(190)
2009年(38)
2008年(183)
2007年(28)
Tay_linu
niao5929
shencz20
qssjh035
mugua250
youngmam
xixichen
CU官方博
commshar
leonlinl
leleston
smile124
甜菜妙妙
test1
xinshou6
bingor
speed
格伯纳
分类: C/C++
2009-02-09 22:23:55
/** 定义函数 char * StringFind(char* _pSrc, const char* _pKey);* 表头文件 #include * 函数描述 从字符串 _PSrc 中查找 _Pkey, 如果找到,返回第一个找到的地址,* 如过没有找到,返回NULL。* _pSrc 要查找的原串* _pKey 要查找的关键串* 返回值 成功,返回第一个找到的字首地址。没有找到,返回NULL。* 作 者 武立强* 时 间 2009-02-09*/char * StringFind(char* _pSrc, const char* _pKey){ assert( NULL != _pSrc && NULL != _pKey ); int nFirstFind = 0 ; //第一个字符是否找到, 0--没找到, 1--找到 int nLastFind = 0; // 最后一个字符 char* pFirstFind = NULL; // 标记找到的第一个字符的位置 const char* pKeyFirst = _pKey; while( '\0' != *_pSrc ) { // 逻辑比较部分, 确保完全匹配查找关键串 if( 0 == nFirstFind && *_pSrc == *_pKey ) { nFirstFind = 1; pFirstFind = _pSrc; _pKey++; } // 匹配成功 else if( 1 == nFirstFind && *_pSrc == *_pKey && '\0' == *(_pKey+1) ) { return pFirstFind; } else if( 1 == nFirstFind && *_pSrc == *_pKey ) { _pKey++; } // 部分匹配,匹配失败 else if( 1 == nFirstFind && *_pSrc != *_pKey ) { nFirstFind = 0; pFirstFind = NULL; _pKey = pKeyFirst; } // 针对一个字符的情况 if( 1 == nFirstFind && '\0' == *(_pKey) ) { return pFirstFind; } _pSrc++; } return NULL;}
上一篇:StringReplace
下一篇:IntToChar
登录 注册