原文出处:http://blog.csdn.net/lanzhihui_10086/article/details/39831935
一、strstr()函数:
strstr():搜索一个字符串在另一个字符串中的第一次出现。找到所搜索的字符串,则该函数返回第一次匹配的字符串的地址;如果未找到所搜索的字符串,则返回NULL。
格式:strstr(str1,str2);
str1: 被查找目标
str2: 要查找对象
实现代码:
- #include<iostream>
- #include<assert.h>
-
- using namespace std;
-
-
- char *strstr_m(const char *str1,const char *str2)
- {
- const char *cp=NULL;
- const char *c=str2;
- bool falg=false;
-
- if(*str2=='\0') return (char*)str1;
-
- while(*str1!='\0')
- {
- while(*str1==*str2)
- {
- if(!falg)
- {
- falg=true;
- cp=str1;
- }
- str1++;
- str2++;
- if(*str2=='\0')
- return (char*)cp;
- }
- str1++;
- cp=NULL;
- falg=false;
- str2=c;
- }
- return (char*)cp;
- }
-
- int main()
- {
- char a[]="lanzhihui is a good boy!";
-
- char *s=strstr_m(a,"is");
-
- if(s!=NULL)
- {
- cout<<s<<endl;
- }
- else
- {
- cout<<"Not Find!"<<endl;
- }
-
- system("pause");
- return 0;
- }
运行上面结果为:is a good boy!
二、memchr()函数
memchr(): void *memchr( const void *buffer, int ch, size_t count );
函数在buffer指向的数组的count个字符的字符串里查找ch 首次出现的位置。返回一个指针,指向ch 在字符串中首次出现的位置, 如果ch 没有在字符串中找到,返回NULL。
实现代码:
- #include<iostream>
- #include<assert.h>
-
- using namespace std;
-
- void *memchr_m(const void *buffer,int ch,int n)
- {
- assert(buffer!=NULL);
-
- char *cp=(char*)buffer;
-
- while(*cp++!='\0'&&n)
- {
- if(*cp-ch==0)
- return (void*)cp;
- --n;
- }
- return NULL;
- }
-
- int main()
- {
- char a[]="lanzhihui is a good boy!";
-
- char *p;
- p=(char*)memchr_m(a,'z',50);
-
- if(p!=NULL)
- {
- cout<<"Find!"<<endl;
- cout<<p<<endl;
- }
- else
- {
- cout<<"Not Find!"<<endl;
- }
-
- system("pause");
- return 0;
- }
三、strchr()函数
strchr():char *strchr(const char *s,char c);
功能:查找字符串s中首次出现字符c的位置
返回值:成功则返回要查找字符第一次出现的位置,失败返回NULL。
实现代码:
- #include<iostream>
- #include<assert.h>
-
- using namespace std;
-
- char *strchr_m(const char *s,int ch)
- {
- assert(s!=NULL);
-
- while(*s!='\0')
- {
- if(*s-ch==0)
- return (char*)s;
- s++;
- }
- return NULL;
- }
-
- int main()
- {
- char a[]="lanzhihui is a good boy!";
-
- char *p;
-
- p=strchr_m(a,'l');
-
- if(p!=NULL)
- {
- cout<<"Find!"<<endl;
- cout<<p<<endl;
- }
-
- else
- {
- cout<<"Not Find!"<<endl;
- }
-
- system("pause");
- return 0;
- }