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