C语言中的strstr函数的用法「建议收藏」

C语言中的strstr函数的用法「建议收藏」strstr(str1,str2)函数用于判断字符串str2是否是str1的子串。如果是,则该函数返回str2在str1中首次出现的地址;否则,返回NULL。PHP语言函数编辑strstr()函数搜索一个字符串在另一个字符串中的第一次出现。该函数返回字符串的其余部分(从匹配点)。如果未找到所搜索的字符串,则返回false。语法

大家好,又见面了,我是你们的朋友全栈君。

strstr(str1,str2) 函数用于判断字符串str2是否是str1的子串。如果是,则该函数返回str2在str1中首次出现的地址;否则,返回NULL。

PHP语言函数

编辑

strstr() 函数搜索一个字符串在另一个字符串中的第一次出现。
该函数返回字符串的其余部分(从匹配点)。如果未找到所搜索的字符串,则返回 false。


语法

1
strstr
(string,search)

[1]
 
参数
描述
string
必需。规定被搜索的字符串。
search
必需。规定所搜索的字符串。


提示

注释:
search若是数字,所搜索的将是该数字(作为ASCII码)代表的字符。
注释:该函数是二进制安全的。
注释:该函数对大小写敏感。如需进行大小写不敏感的搜索,请使用 stristr()。


实例

1
<?php 
echo 
strstr
(
"Helloworld!"
,
"world"
);?>

输出:
1
world!



C语言函数

编辑

包含文件:
string.h
函数名: strstr
函数原型:
1
extern 
char 
*
strstr
(
char 
*str1, 
const 
char 
*str2);

语法:
1

strstr
(str1,str2)

str1: 被查找目标 string expression to search.
str2: 要查找对象 The string expression to find.
返回值:若str2是str1的子串,则返回str2在str1的首次出现的地址;如果str2不是str1的子串,则返回NULL。
例子:
1
2
3
char 
str[]=
"1234xyz"
;
char 
*str1=
strstr
(str,
"34"
);
cout << str1 << endl;

显示的是: 34xyz


函数实现

1.Copyright 1990 Software Development Systems, Inc.
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;
}

2.Copyright 1986 – 1999 IAR Systems. All rights reserved
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;
}

3. GCC-4.8.0
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);
}


  


应用举例

// strstr.c
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;
}

//功能:从字串” string1 onexxx string2 oneyyy”中寻找”yyy”
(假设xxx和yyy都是一个未知的字串)
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"
);

说明:如果直接写语句p=strstr(s,”one”),找到的是onexxxstring2oneyyy
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/153021.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号