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 -


本文标签: 字符串 函数 用来