大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新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账号...