c语言编strstr函数 c语言strstr函数用法

C语言中strstr()函数的使用分析原型: char *strstr(const char *str1, const char *str2);
#includestring.h
找出str2字符串在str1字符串中第一次出现的位置(不包括str2的串结束符) 。返回该位置的指针 , 如找不到 , 返回空指针 。
Returns a pointer to the first occurrence of strSearch in str, or NULL if strSearch does not appear in str. IfstrSearch points to a string of zero length, the function returns str.
代码如下:
#include stdio.h
#include conio.h
#include string.h
#include stdlib.h
#pragma warning (disable:4996)
char *mystrstr(char *s1,char *s2);
int main(void)
{
char *s="Golden Global View";
char *l="ob";//char *l=""
char *p;
system("cls");
p=mystrstr(s,l);
if (p!=NULL)
{
printf("%sn",p);
}
else
{
printf("Not Found!n");
}
getch();
return 0;
}
/*FROM 百科*/
char *mystrstr(char *s1,char *s2)
{
int n;
if (*s2)//两种情况考虑
{
while(*s1)
{
for (n=0;*(s1+n)==*(s2+n);n++)
{
if (!*(s2+n+1))//查找的下一个字符是否为''
{
return (char*)s1;
}
}
s1++;
}
return NULL;
}
else
{
return (char*)s1;
}
}
另一个实现:
代码如下:
char *strstr (buf, sub)
register char *buf;
register char *sub;
{
register char *bp;
register char *sp;
if (!*sub)
return buf;
while (*buf)
{
bp = buf;
sp = sub;
do {
if (!*sp)
return buf;
} while (*bp++ == *sp++);
buf += 1;
}
return 0;
}
又一个实现:
代码如下:
#include iostream
#include string
using namespace std;
//c语言实现strstr
const char* isSub(const char* str, const char *subs){
//特殊情况
if(!*subs)
return str;
const char* tmp=str;
while (*tmp!='')
{
//用于每次将父串向后移动一个字符
const char* tmp1=tmp;
//记录子串地址
const char* sub1=subs;
while (*sub1!=''*tmp1!='')
{
//若不相等则跳出,将父串后移一个字符
if (*sub1!=*tmp1)
break;
//若相等且子串下一个字符是末尾则是这个父串的子串
if (*sub1==*tmp1*(sub1+1)=='')
【c语言编strstr函数 c语言strstr函数用法】return tmp;
//若相等则继续比较下一个字符
if (*sub1==*tmp1)
{
sub1++;
tmp1++;
}
}
tmp++;
}
return NULL;
}
int main(){
char* str1="ababcdddb";
char* str="";
const char *res=isSub(str1,str);
if (res!=NULL)
{
coutresendl;
}
else
cout"null"endl;
//coutisSub(str1,str)endl;
return 0;
}
求C语言中怎么用strstr函数求!位置!strstr()函数是标准C语言函数,在linux系统下,运行命令man strstr 可以看到strstr()函数原型为:
$ man strstr
SYNOPSIS
#include string.h
char *strstr(const char *haystack, const char *needle);
DESCRIPTION
The strstr() function finds the first occurrence of the substring needle in the string haystack.The terminating '\0' characters are not compared.
函数功能描述: strstr()函数查找needle(第二个参数)在字符串haystack(第一个参数)中首次出现的位置 。如果找到,则返回子串首位置的指针值,否则返回NULL 。
如果想将指针位置转换成相应的字符偏移位置,可以用返回指针与字符串haystack指针进行相减运算 , 得到偏移值 。参考代码和运行结果如下:
strchr与strstr函数char
*strchr(char

推荐阅读