c语言 strstr和strrpl库函数的作用是什么??
发布网友
发布时间:2022-04-28 12:58
我来回答
共1个回答
热心网友
时间:2023-07-26 07:25
标准C语言实现下列标准库函数,设计中不得使用其他库函数。
strstr库函数:
char
*strstr(char
*str1,char
*str2);
在字符串str1中,寻找字串str2,若找到返回找到的位置,否则返回NULL。
#include
<iostream>
char
*strstr(const
char
*str1,
const
char
*str2);
char
*strstr(const
char
*str1,
const
char
*str2)
{
char
*s1,
*s2;
assert
((str1
!=
(char
*)0)
&&
(str2
!=
(char
*)0));
/*
空字符串是任务字符串的子字符串
*/
if
(''
==
*str2)
{
return
((char
*)str1);
}
while
(*str1)
{
s1
=
(char
*)str1;
s2
=
(char
*)str2;
while
((*s1
==
*s2)
&&
*s1
&&
*s2)
{
s1++;
s2++;
}
if
(''
==
*s2)
{
return
((char
*)str1);
}
str1++;
}
/*
查找不成功,返回NULL
*/
return
((char
*)0);
}
int
main(int
argc,char
*argv[])
{
char
a[20]="abcde";
char
b[20]="bc";
printf("%s
",
strstr(a,b));
system
("pause");
return
0;
}
strrpl库函数:
/*
把
s
中的字符串
s1
替换成
s2
*/
char
*strrpl(char
*s,
const
char
*s1,
const
char
*s2)
{
char
*ptr;
while
(ptr
=
strstr(s,
s1))
/*
如果在s中找到s1
*/
{
memmove(ptr
+
strlen(s2)
,
ptr
+
strlen(s1),
strlen(ptr)
-
strlen(s1)
+
1);
memcpy(ptr,
&s2[0],
strlen(s2));
}
return
s;
}