当前位置:首页 » 编程语言 » c语言strstr用法
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言strstr用法

发布时间: 2022-01-17 18:57:28

‘壹’ c语言 strstr和strrpl库函数的作用是什么

标准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 ('\0' == *str2)
{
return ((char *)str1);
}

while (*str1)
{
s1 = (char *)str1;
s2 = (char *)str2;

while ((*s1 == *s2) && *s1 && *s2)
{
s1++;
s2++;
}
if ('\0' == *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\n", 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;

}

‘贰’ 请问C语言中strstr(strcat(str1,str2),str3)是什么意思

strstr(strcat(str1, str2), str3);用于将str2连接到str1后面,构成新的字符串,然后在新字符串中查找包含str3的位置,
同时将该位置以后的字符串整个返回。

strcat(str1, str2)是将str2连接到str1末尾,由于strcat没有做字符串长度检查,必须保证传入的str1的剩余空间能够容纳
下str2,比如:
char str1[100] = "Hello";
char str2[] = world;
那么strcat(str1, str2)返回的结果是:Helloworld
但如果str1长度只有"Hello",则会出现不可预料的错误。

strstr(str1, str2)则会在str1中查找str2,同时返回剩下的字符串,
比如:
char str1[] = "Hello";
char str2[] = "e";
则strstr(str1, str2)返回结果为: ello

‘叁’ 关于C语言中strstr()函数的使用

因为这个函数是查找匹配的子字符串,如果没有找到完全匹配的就往回空
所以p
==
NULL
cout<<p;就是
cout
<<NULL;这个肯定会挂的
正确的做法就是
if(p)
cout
<<p;
else
cout<<"not
match"<<endl;

‘肆’ C语言strstr()函数

循环,每次从第一个字符串中取出长度与第二个字符串相等的字符串(N个),进行比较,若不等则再从第二个字符开始取N个,再与第二个比较,可以使用指针来进行操作,指向字符串首地址,若第一次比较不对则指针地址加1,指向第二个字符

‘伍’ C语言函数strstr的函数原型extern char *strstr(char *str1, char *str2);

extern 定义在前面
extern可以置于变量或者函数前,以标示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中寻找其定义
extern "C"的作用是,告诉C++编译器,下面的代码按照C的方式进行编译

我不是不懂extern修饰符的含义,我是问,为什么函数原型前面加一个extern修饰符?
不是很清楚吗 有这个表示 是说明 他在别的文件 里面有定义 编译器 要知道 你在别的文件中定义 使用 但是要在别的文件里面使用它 不告诉编译器 他知道 嘛 你知道不管用

‘陆’ string类型用法中有类似C语言里strstr的用法吗

可以把string类型,转成c语言的str类型,再使用strstr函数即可。

const char* ptr = string.c_str();
str = strstr(ptr)

‘柒’ strstr函数的用法。。。。。。。。。。。。。。。

C++函数原型:

const char * strstr ( const char * str1, const char * str2 );

char * strstr ( char * str1, const char * str2 );

C函数原型:

char * strstr ( const char *, const char * );

a字符串里 查看是否有b字符串,

有则 从首次发现b字符串处 返回 a字符串。

没有则输出 null

例子:

char st[]="abc 1234 xyz";

printf("%s",strstr(st,"34") );

打印出:

34 xyz


(7)c语言strstr用法扩展阅读

#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都是一个未知的字串)

char*s=”string1onexxxstring2oneyyy”;

char*p;

p=strstr(s,”yyy”);

if(p!=NULL)

printf(“%s”,p);

else

printf("notfound ");

‘捌’ C语言 寻找字符串!要求:用strstr函数。

//---------------------------------------------------------------------------

#include <stdio.h>
#include <string.h>

int main(void)
{
char s1[80],s2[70];
scanf("%s",s1); /*输入第一个字符串,以回车结束*/
fflush(stdin);
scanf("%s",s2); /*输入第二个字符串,以回车结束*/
printf("%d",strstr(s1,s2)-s1+1); /*输出结果*/
return 0;
}
//---------------------------------------------------------------------------

‘玖’ C语言中,strstr函数的功能是什么不用库函数,自己写怎么写

C语言中,strstr函数的功能是寻找字符串中子串出现的位置,自己写的步骤如下。

需要准备的材料分别有:电脑、C语言编译器。

1、首先,打开C语言编译器,新建一个初始.cpp文件,例如:test.cpp。