admin 管理员组文章数量: 887192
2023年12月20日发(作者:数据库去重distinct用法)
strstr函数c语言
strstr函数,又称为字符串搜索函数,C语言标准库中提供的一个函数,它的功能是在一个给定的字符串内,查找另一个给定的子串。它的标准格式是:
char *strstr(const char* s1, const char* s2);
其中s1是源串,s2是要查找的子串。当s2不是s1的子串时,返回NULL。
strstr函数是搜索s1内s2的功能,同样也可以用来搜索s2内s1的情况。例如:
char *strstr(const char* s2, const char* s1);
在该函数的使用中,只有当s1出现在s2中时,才会返回一个指针,指向s2字符串中s1第一次出现的位置。否则,如果s1不在s2中,则函数返回NULL。
strstr函数可以用来搜索字符串s2中是否含有s1,如果有,则返回一个指向s1第一次出现的位置的指针,如果没有,则返回NULL。
strstr函数的常用应用:
(1)查找字符串中特定子字符串出现的位置
strstr函数可以用来查找字符串s2中是否含有s1,如果有,则返回一个指向s1第一次出现的位置的指针;
例:在字符串This is a test string中查找test:
#include
#include
- 1 -
int main(){
char str[] = This is a test string
char *p;
p = strstr(str,test
if (p)
{
printf(found test at position %ld
p-str);
}
return 0;
}
输出结果:found test at position 10
可以看到,字符串test在This is a test string中第一次出现的位置是10.
(2)替换字符串中的某个子字符串
strstr函数还可以用来替换字符串中的某个子字符串。
例:将字符串This is a test string中的test替换成example:
#include
#include
#include
int main()
- 2 -
{
char str[30] = This is a test string
char *p;
char *new_str;
int len;
p = strstr(str, test //找到要替换的子字符串
if (p)
{
len = strlen(p) - strlen(test + strlen(example //算新字符串的长度
new_str = (char *)malloc(len + 1); // 为新字符串申请空间
memcpy(new_str, str, p - str); //贝第一段
memcpy(new_str + (p - str), example strlen(example); //贝第二段
memcpy(new_str + (p - str) + strlen(example p + strlen(test
strlen(p) - strlen(test); //贝第三段
printf(
ew str is: %s
new_str);
}
return 0;
- 3 -
}
输出结果:new str is: This is a example string
可以看到,字符串This is a test string中的test被替换成了example。
(3)删除字符串中的某个子字符串
strstr函数也可以用来删除字符串中的某个子字符串。
例:将字符串This is a test string中的test删掉:
#include
#include
int main(){
char str[] = This is a test string
char *p;
p = strstr(str,test
if (p)
{
memcpy(p, p + strlen(test strlen(p) - strlen(test + 1);
printf(str is : %s
str);
}
return 0;
}
- 4 -
输出结果:str is : This is a string
可以看到,字符串This is a test string中的test被删除了。
以上,就是strstr函数的使用,希望能够帮助到大家!
- 5 -
版权声明:本文标题:strstr函数c语言 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/free/1703012033h439595.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论