大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。
Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺
string.h
1 | extern char * strstr ( char *str1, const char *str2); |
1 |
* strstr (str1,str2) |
1 2 3 |
char str[]= "1234xyz" ; char *str1= strstr (str, "34" ); cout << str1 << endl; |
函数实现
1 2 3 4 5 6 7 8 9 10 11 12 |
char * strstr ( const char *s1, const char *s2) { int len2; if (!(len2= strlen (s2))) //此种情况下s2不能指向空,否则strlen无法测出长度,这条语句错误 return ( char *)s1; for (;*s1;++s1) { if (*s1==*s2 && strncmp (s1,s2,len2)==0) return ( char *)s1; } return NULL; } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
char * strstr (constchar*s1,constchar*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; } |
1 2 3 4 5 6 7 8 9 10 11 |
char * strstr ( const char *s1, const char *s2) { const char *p=s1; const size_tlen= strlen (s2); for (;(p= strchr (p,*s2))!=0;p++) { if ( strncmp (p,s2,len)==0) return ( char *)p; } return (0); } |
应用举例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
#include <syslib.h> #include <string.h> main() { char *s= "GoldenGlobalView" ; char *l= "lob" ; char *p; clrscr(); p= strstr (s,l); if (p) printf ( "%s" ,p); else printf ( "NotFound!" ); getchar (); return0; } |
1 2 3 4 5 6 7 |
char *s=”string1onexxxstring2oneyyy”; char *p; p= strstr (s,”yyy”); if (p!=NULL) printf (“%s”,p); else printf ( "notfound\n" ); |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
char *mystrstr( char *s1, char *s2) { if (*s1==0) { if (*s2) return ( char *)NULL; return ( char *)s1; } while (*s1) { int i=0; while (1) { if (s2[i]==0) return s1; if (s2[i]!=s1[i]) break ; i++; } s1++; } return ( char *)NULL; } |
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/167615.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...