html5中文学习网

您的位置: 首页 > 网站及特效实例 > jquery特效 » 正文

关于C语言函数strstr()的分析以及实现_编程语言综合

[ ] 已经帮助:人解决问题
以下是对C语言中strstr()函数的使用进行了详细的分析介绍,需要的朋友可以参考下
 

原型:char *strstr(const char *str1, const char *str2);jQRHTML5中文学习网 - HTML5先行者学习网
#include<string.h>jQRHTML5中文学习网 - HTML5先行者学习网
找出str2字符串在str1字符串中第一次出现的位置(不包括str2的串结束符)。返回该位置的指针,如找不到,返回空指针。jQRHTML5中文学习网 - HTML5先行者学习网
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.jQRHTML5中文学习网 - HTML5先行者学习网

复制代码 代码如下:
jQRHTML5中文学习网 - HTML5先行者学习网
#include <stdio.h>jQRHTML5中文学习网 - HTML5先行者学习网
#include <conio.h>jQRHTML5中文学习网 - HTML5先行者学习网
#include <string.h>jQRHTML5中文学习网 - HTML5先行者学习网
#include <stdlib.h>jQRHTML5中文学习网 - HTML5先行者学习网
#pragma warning (disable:4996)jQRHTML5中文学习网 - HTML5先行者学习网
char *mystrstr(char *s1,char *s2);jQRHTML5中文学习网 - HTML5先行者学习网
int main(void)jQRHTML5中文学习网 - HTML5先行者学习网
{jQRHTML5中文学习网 - HTML5先行者学习网
 char *s="Golden Global View";jQRHTML5中文学习网 - HTML5先行者学习网
 char *l="ob";   //char *l=""jQRHTML5中文学习网 - HTML5先行者学习网
 char *p;jQRHTML5中文学习网 - HTML5先行者学习网
 system("cls");jQRHTML5中文学习网 - HTML5先行者学习网
 p=mystrstr(s,l);jQRHTML5中文学习网 - HTML5先行者学习网
 if (p!=NULL)jQRHTML5中文学习网 - HTML5先行者学习网
 {jQRHTML5中文学习网 - HTML5先行者学习网
  printf("%s/n",p);jQRHTML5中文学习网 - HTML5先行者学习网
 }jQRHTML5中文学习网 - HTML5先行者学习网
 elsejQRHTML5中文学习网 - HTML5先行者学习网
 {jQRHTML5中文学习网 - HTML5先行者学习网
  printf("Not Found!/n");jQRHTML5中文学习网 - HTML5先行者学习网
 }jQRHTML5中文学习网 - HTML5先行者学习网
    getch();jQRHTML5中文学习网 - HTML5先行者学习网
 return 0;jQRHTML5中文学习网 - HTML5先行者学习网
}jQRHTML5中文学习网 - HTML5先行者学习网
/*FROM 百科*/jQRHTML5中文学习网 - HTML5先行者学习网
char *mystrstr(char *s1,char *s2)jQRHTML5中文学习网 - HTML5先行者学习网
{jQRHTML5中文学习网 - HTML5先行者学习网
 int n;jQRHTML5中文学习网 - HTML5先行者学习网
 if (*s2)                      //两种情况考虑jQRHTML5中文学习网 - HTML5先行者学习网
 {jQRHTML5中文学习网 - HTML5先行者学习网
        while(*s1)               jQRHTML5中文学习网 - HTML5先行者学习网
  {jQRHTML5中文学习网 - HTML5先行者学习网
            for (n=0;*(s1+n)==*(s2+n);n++)jQRHTML5中文学习网 - HTML5先行者学习网
            {jQRHTML5中文学习网 - HTML5先行者学习网
    if (!*(s2+n+1))            //查找的下一个字符是否为'/0'jQRHTML5中文学习网 - HTML5先行者学习网
    {jQRHTML5中文学习网 - HTML5先行者学习网
     return (char*)s1;jQRHTML5中文学习网 - HTML5先行者学习网
    }jQRHTML5中文学习网 - HTML5先行者学习网
            }jQRHTML5中文学习网 - HTML5先行者学习网
   s1++;jQRHTML5中文学习网 - HTML5先行者学习网
  }jQRHTML5中文学习网 - HTML5先行者学习网
  return NULL;jQRHTML5中文学习网 - HTML5先行者学习网
 }jQRHTML5中文学习网 - HTML5先行者学习网
 elsejQRHTML5中文学习网 - HTML5先行者学习网
 {jQRHTML5中文学习网 - HTML5先行者学习网
  return (char*)s1;jQRHTML5中文学习网 - HTML5先行者学习网
 }jQRHTML5中文学习网 - HTML5先行者学习网
}

jQRHTML5中文学习网 - HTML5先行者学习网
另一个实现:jQRHTML5中文学习网 - HTML5先行者学习网

复制代码 代码如下:
jQRHTML5中文学习网 - HTML5先行者学习网
char *  strstr (buf, sub)jQRHTML5中文学习网 - HTML5先行者学习网
     register char *buf;jQRHTML5中文学习网 - HTML5先行者学习网
     register char *sub;jQRHTML5中文学习网 - HTML5先行者学习网
{jQRHTML5中文学习网 - HTML5先行者学习网
    register char *bp;jQRHTML5中文学习网 - HTML5先行者学习网
    register char *sp;jQRHTML5中文学习网 - HTML5先行者学习网
    if (!*sub)jQRHTML5中文学习网 - HTML5先行者学习网
      return buf;jQRHTML5中文学习网 - HTML5先行者学习网
    while (*buf)jQRHTML5中文学习网 - HTML5先行者学习网
    {jQRHTML5中文学习网 - HTML5先行者学习网
        bp = buf;jQRHTML5中文学习网 - HTML5先行者学习网
        sp = sub;jQRHTML5中文学习网 - HTML5先行者学习网
        do {jQRHTML5中文学习网 - HTML5先行者学习网
            if (!*sp)jQRHTML5中文学习网 - HTML5先行者学习网
              return buf;jQRHTML5中文学习网 - HTML5先行者学习网
        } while (*bp++ == *sp++);jQRHTML5中文学习网 - HTML5先行者学习网
        buf += 1;jQRHTML5中文学习网 - HTML5先行者学习网
    }jQRHTML5中文学习网 - HTML5先行者学习网
    return 0;jQRHTML5中文学习网 - HTML5先行者学习网
}

jQRHTML5中文学习网 - HTML5先行者学习网
又一个实现:jQRHTML5中文学习网 - HTML5先行者学习网

复制代码 代码如下:

jQRHTML5中文学习网 - HTML5先行者学习网
#include <iostream>jQRHTML5中文学习网 - HTML5先行者学习网
#include <string>jQRHTML5中文学习网 - HTML5先行者学习网
using namespace std;jQRHTML5中文学习网 - HTML5先行者学习网
//c语言实现strstrjQRHTML5中文学习网 - HTML5先行者学习网
const char* isSub(const char* str, const char *subs){jQRHTML5中文学习网 - HTML5先行者学习网
 //特殊情况jQRHTML5中文学习网 - HTML5先行者学习网
 if(!*subs)jQRHTML5中文学习网 - HTML5先行者学习网
  return str;jQRHTML5中文学习网 - HTML5先行者学习网
 const char* tmp=str;jQRHTML5中文学习网 - HTML5先行者学习网
 while (*tmp!='/0')jQRHTML5中文学习网 - HTML5先行者学习网
 {jQRHTML5中文学习网 - HTML5先行者学习网
  //用于每次将父串向后移动一个字符jQRHTML5中文学习网 - HTML5先行者学习网
  const char* tmp1=tmp;jQRHTML5中文学习网 - HTML5先行者学习网
  //记录子串地址jQRHTML5中文学习网 - HTML5先行者学习网
  const char* sub1=subs;jQRHTML5中文学习网 - HTML5先行者学习网
  while (*sub1!='/0'&&*tmp1!='/0')jQRHTML5中文学习网 - HTML5先行者学习网
  {jQRHTML5中文学习网 - HTML5先行者学习网
   //若不相等则跳出,将父串后移一个字符jQRHTML5中文学习网 - HTML5先行者学习网
   if (*sub1!=*tmp1)jQRHTML5中文学习网 - HTML5先行者学习网
    break;jQRHTML5中文学习网 - HTML5先行者学习网
   //若相等且子串下一个字符是末尾则是这个父串的子串jQRHTML5中文学习网 - HTML5先行者学习网
   if (*sub1==*tmp1&&*(sub1+1)=='/0')jQRHTML5中文学习网 - HTML5先行者学习网
    return tmp;jQRHTML5中文学习网 - HTML5先行者学习网
   //若相等则继续比较下一个字符jQRHTML5中文学习网 - HTML5先行者学习网
   if (*sub1==*tmp1)jQRHTML5中文学习网 - HTML5先行者学习网
   {jQRHTML5中文学习网 - HTML5先行者学习网
    sub1++;jQRHTML5中文学习网 - HTML5先行者学习网
    tmp1++;jQRHTML5中文学习网 - HTML5先行者学习网
   }jQRHTML5中文学习网 - HTML5先行者学习网
  }jQRHTML5中文学习网 - HTML5先行者学习网
  tmp++;jQRHTML5中文学习网 - HTML5先行者学习网
 }jQRHTML5中文学习网 - HTML5先行者学习网
 return NULL;jQRHTML5中文学习网 - HTML5先行者学习网
}jQRHTML5中文学习网 - HTML5先行者学习网
int main(){jQRHTML5中文学习网 - HTML5先行者学习网
 char* str1="ababcdddb";jQRHTML5中文学习网 - HTML5先行者学习网
 char* str="";jQRHTML5中文学习网 - HTML5先行者学习网
 const char *res=isSub(str1,str);jQRHTML5中文学习网 - HTML5先行者学习网
 if (res!=NULL)jQRHTML5中文学习网 - HTML5先行者学习网
 {jQRHTML5中文学习网 - HTML5先行者学习网
  cout << res << endl;jQRHTML5中文学习网 - HTML5先行者学习网
 }jQRHTML5中文学习网 - HTML5先行者学习网
 elsejQRHTML5中文学习网 - HTML5先行者学习网
  cout << "null" << endl;jQRHTML5中文学习网 - HTML5先行者学习网
 //cout << isSub(str1,str) << endl;jQRHTML5中文学习网 - HTML5先行者学习网
 return 0;jQRHTML5中文学习网 - HTML5先行者学习网
}jQRHTML5中文学习网 - HTML5先行者学习网

 jQRHTML5中文学习网 - HTML5先行者学习网

 

 jQRHTML5中文学习网 - HTML5先行者学习网

(责任编辑:)
推荐书籍
推荐资讯
关于HTML5先行者 - 联系我们 - 广告服务 - 友情链接 - 网站地图 - 版权声明 - 人才招聘 - 帮助