FROM MSDN && 百科】
原型:char *strstr(const char *str1, const char *str2);
#include<string.h>
找出str2字符串在str1字符串中第一次出现的位置(不包括str2的串结束符)。返回该位置的指针,如找不到,返回空指针。
Returns a pointer to the first occurrence of strSearch in str, or NULL if strSearch does not appear instr. If strSearch points to a string of zero length, the function returns str.
DEMO: mystrstr
- #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 *p;
- system("cls");
- p=mystrstr(s,l);
- if (p!=NULL)
- {
- printf("%s\n",p);
- }
- else
- {
- printf("Not Found!\n");
- }
- getch();
- return 0;
- }
-
- 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;
- }
- }
DEMO:
-
- #define SECOND_DEMO
-
- #ifdef FIRST_DEMO
- #include <stdio.h>
- #include <conio.h>
- #include <string.h>
- int main(void)
- {
- char *s="Golden Global View";
- char *l="lob";
- char *p;
- system("cls");
- p=strstr(s,l);
- if (p!=NULL)
- {
- printf("%s\n",p);
- }
- else
- {
- printf("Not Found!\n");
- }
-
- getch();
- return 0;
- }
- #elif defined SECOND_DEMO
-
- #include <stdio.h>
- #include <conio.h>
- #include <string.h>
- int main(void)
- {
- char *s="string1 onexxx string2 oneyyy";
- char *p;
- p=strstr(s,"string2");
- printf("%s\n",p);
- if (p==NULL)
- {
- printf("Not Found!\n");
- }
- p=strstr(p,"one");
- printf("%s\n",p);
- if (p==NULL)
- {
- printf("Not Found!\n");
- }
- p+=strlen("one");
- printf("%s\n",p);
-
- getch();
- return 0;
- }
- #endif