
本文链接:
一、strstr()函数:
strstr():搜索一个字符串在另一个字符串中的第一次出现。找到所搜索的字符串,则该变量返回第一次匹配的字符串的地址;如果未找到所搜索的字符串strchr函数怎么用,则返回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;//当第二个参数为空时,返回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");//注意:当第二个实参为 "" 时,s指向a数组的首地址
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的位置
返回值:成功则返回要查找字符第一次出现的位置strchr函数怎么用,失败返回NULL。
实现代码:
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-120168-1.html
既然“这两个涉及到美国自身的安全
目前