barriers / 阅读 / 详情

c++里strstr是啥意思???

2023-07-24 10:09:52
TAG: rs tr st str trs strstr
共1条回复
陶小凡

strstr 从一个字符串中查找子字符串。

第一个参数是待查找字符串的地址,第二个参数是被查找子字符串的地址。

返回待查找字符串中子字符串的首字符地址。如果子字符串不存在则返回空指针。

char str[] = "abcdefghijklmn";

char str1[] = "efg";

char str2[] = "hijk";

char str3[] = "nop";

char *pstr1, *pstr2, *pstr3;

pstr1 = strstr(str, str1);

pstr2 = strstr(str, str2);

pstr3 = strstr(str, str3);

printf("%s, %s, %s", pstr1, pstr2, pstr3);

输出:

efghijklmn, hijklmn, (null)

相关推荐

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
2023-07-24 06:09:551

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

这个我也是第一次见,看下这个网站吧http://baike.baidu.com/view/745156.htm
2023-07-24 06:10:164

c++语言中strstr什么意思

包含文件:string.h函数名: strstr函数原型:extern char *strstr(const char *str1, const char *str2);语法:* strstr(str1,str2)str1: 被查找目标 string expression to search.str2: 要查找对象 The string expression to find.返回值:该函数返回str2第一次在str1中的位置,如果没有找到,返回NULLThe strstr() function returns the ordinal position within str1 of the first occurrence of str2. If str2 is not found in str1, strstr() returns 0.
2023-07-24 06:11:161

c++ strstr() 函数具体怎么用,比方说内部传入什么变量,返回值是什么,还有和find()函数的区别。

strstr 从一个字符串中查找子字符串。第一个参数是待查找字符串的地址,第二个参数是被查找子字符串的地址。返回待查找字符串中子字符串的首字符地址。如果子字符串不存在则返回空指针。char str[] = "abcdefghijklmn";char str1[] = "efg";char str2[] = "hijk";char str3[] = "nop";char *pstr1, *pstr2, *pstr3;pstr1 = strstr(str, str1);pstr2 = strstr(str, str2);pstr3 = strstr(str, str3);printf("%s, %s, %s", pstr1, pstr2, pstr3);输出:efghijklmn, hijklmn, (null)
2023-07-24 06:11:231

求C语言中怎么用strstr函数求!位置!

p-s1+1就是其位置
2023-07-24 06:11:392

VC ++ 中strstr来自哪个头文件

string.h 都是这个头文件
2023-07-24 06:12:062

请问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
2023-07-24 06:12:451

strstr函数的用法。。。。。。。。。。。。。。。

我也没用过,不过你遇见问题最好自己去查,养成习怪
2023-07-24 06:12:536

strchr返回值与strstr返回值差别

最后结果不是相同么
2023-07-24 06:13:132

strpbrk和strstr的区别

strstr()、strchr()、strpbrk() strstr() 原型:extern char *strstr(char *haystack, char *needle); 用法:#include <string.h> 功能:从字符串haystack中寻找needle第一次出现的位置(不比较结束符NULL)。 说明:返回指向第一次出现needle位置的指针,如果没找到则返回NULL。 举例: // strstr.c #include <syslib.h> #include <string.h> main() { char *s="Golden Global View"; char *l="lob"; char *p; clrscr(); p=strstr(s,l); if(p) printf("%s",p); else printf("Not Found!"); getchar(); return 0; } strchr() 原型:extern char *strchr(const char *s,char c); 用法:#include <string.h> 功能:查找字符串s中首次出现字符c的位置 说明:返回首次出现c的位置的指针,返回的地址是字符串在内存中随机分配的地址再 加上你所搜索的字符在字符串位置,如果s中不存在c则返回NULL。 举例: #include<string.h> #include<stdio.h> intmain(void) { charstring[17]; char*ptr,c="r"; strcpy(string,"Thisisastring"); ptr=strchr(string,c); if(ptr) printf("Thecharacter%cisatposition:%s ",c,ptr); else printf("Thecharacterwasnotfound ");return0; } strpbrk() 函数原型:extern char *strpbrk(char *str1, char *str2); 函数功能:比较字符串str1和str2中是否有相同的字符,如果有,则返回该字符在str1中的位置的指针。 返回说明:返回指针,搜索到的字符在str1中的索引位置的指针。 #include<string.h> #include<stdio.h>int main() { char *str1="please try again,sky2098!"; char *str2="Hello,I am sky2098,I like writing!"; char *strtemp; strtemp=strpbrk(str1,str2); //搜索进行匹配 printf("Result is: %s ",strtemp); return 0; }
2023-07-24 06:13:211

strstr函数查找中文问题

char* szTest = "我是中国人";cout<<strstr(szTest, "中国");
2023-07-24 06:13:305

c语言的查找字符串函数strstr效率高吗?源码有谁知道的

一般情况下,strstr的表现是要比KMP优秀。你可以百度下strstr和kmp。
2023-07-24 06:13:453

php 中的strstr()与strchr()的区别

strstr() 和strchr() 是完全一致的两个函数,它们都是从第一次出现的位置往后显示结果strrchr()函数就不一样了,是从最后一次出现的位置往后显示结果如:$a = "a@abc@cde";strstr($a,"@"); 和 strchr($a,"@"); 结果也是:@abc@cdestrstr($a,"@",true); 和 strchr($a,"@",true);结果也是:a 而 strrchr($a,"@");结果是:@cde
2023-07-24 06:14:004

C 语言 strstr 函数出错 段错误

注意在使用strstr函数时,对参数是有限制的;如果有参数为null,则必然出现segment error。你的程序就是出现了此情况。
2023-07-24 06:14:072

关于strstr函数报错的问题

注意在使用strstr函数时,对参数是有限制的;如果有参数为null,则必然出现segment error。 你的程序就是出现了此情况。 参考资料:C++ 手册 //.
2023-07-24 06:14:141

请问c语言寻找子串位置strstr(a,b)-a+1为什么要-a?

版本系统编辑
2023-07-24 06:14:335

C语言,问一个函数,检索并且返回某字符在某字符串中第一次出现的位置。是什么函数,返回值有哪些?急

如下: 函数名: strstr   功 能: 在字符串中查找指定字符串的第一次出现   用 法: char *strstr(char *str1, char *str2);   strstr原型:extern char *strstr(char *haystack, char *needle);   头文件:#include <string.h>   功能:从字符串haystack中寻找needle第一次出现的位置(不比较结束符NULL)。   说明:返回指向第一次出现needle位置的指针,如果没找到则返回NULL。 编辑本段函数原型   1.Copyright 1990 Software Development Systems, Inc.   </B>char *strstr( const char *s1, const char *s2 )   {   int len2;   if ( !(len2 = strlen(s2)) )   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   char *strstr(const char *s1, const char *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;   } 编辑本段举例   // strstr.c   #include <syslib.h>   #include <string.h>   main()   {   char *s="Golden Global View";   char *l="lob";   char *p;   clrscr();   p=strstr(s,l);   if(p)   printf("%s",p);   else   printf("Not Found!");   getchar();   return 0;   }   语法:* strstr(str1,str2)   str1: 被查找目标 string expression to search.   str2:要查找对象 The string expression to find.   该函数返回str2第一次在str1中的位置,如果没有找到,返回NULL   The strstr() function returns the ordinal position within str1 of the first occurrence of str2. If str2 is not found in str1, strstr() returns 0.   例子:   功能:从字串” string1 onexxx string2 oneyyy”中寻找”yyy”   (假设xxx和yyy都是一个未知的字串)   char *s=” string1 onexxx string2 oneyyy”;   char *p;   p=strstr(s,”string2”);   if(p==NULL) printf(“Not Found!”);   p=strstr(p,”one”);   if(p==NULL) printf(“Not Found!”);   p+=strlen(“one”);   printf(“%s”,p);   说明:如果直接写语句p=strstr(s,”one”),则找到的是onexxx string2 oneyyy,不符合要求   所以需采用二次查找法找到目标
2023-07-24 06:14:471

c语言 strstr函数

假如we后面有1万字也都输出没有什么让他控制输出
2023-07-24 06:14:567

C语言strstr()函数

搜索kmp算法
2023-07-24 06:15:163

C语言strstr函数的应用注意事项?为什么找不到子数组,详见描述

srcstr1[200] = 0x52;//Rsrcstr1[201] = 0x45;//Esrcstr1[202] = 0x41;//Asrcstr1[203] = 0x44;//Dsrcstr1[204] = 0x59;//Y以上不是胡写吗?若在srcstr1[0]~srcstr1[199]中有一个0,那不就找不到了吗?
2023-07-24 06:15:231

C++问题:请问如何让 strstr()函数忽略大小写?尽量优化运行时间。

有一个函数是strcasestr(),参数和strstr一样,就是搜索时不管大小写。不过这是一个非标准的扩展函数,不知道你的编译器是否支持。
2023-07-24 06:15:301

strstr函数的返回只是什么呀?谁能给我解释一下这个函数?

比如说 CString str1 = "1234567";if(strstr(str1,"34")){ 如果为真就证明里边有“34”}
2023-07-24 06:15:524

strpos和strstr两个函数的区别

两个函数 都是 查找 “字符串的首次出现位置” string strstr ( string $haystack , mixed $needle [, bool $before_needle = false ] ) 函数 区分大小写 如果想要不区分大小写,请使用 stristr()。 int strpos ( string $haystack , mixed $needle [, int $offset = 0 ] )返回 needle 在 haystack 中首次出现的数字位置。与 strrpos() 不同,在 PHP 5 之前,该函数可以使用一个完整字符串作为 needle,并且整个字符串都将被使用。
2023-07-24 06:15:591

strstr函数的参数问题

总觉得你想用的函数不是strstr……
2023-07-24 06:16:072

那个,strstr返回的是一个地址,我怎么把它改成下标啊?

char str[] ="this is a sample string";char * p = strstr(str, "is");int index = p - str;printf("%d", index); // Should print 2
2023-07-24 06:16:253

strlen,strcpy,strcat,strcmp,strstr各代表什么意思

strlen 计算字符串的长度strcpy 串拷贝strcat 串连接strcmp 串比较strstr 扫描给定子串在一字符串中出现的位置
2023-07-24 06:16:332

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

可以把string类型,转成c语言的str类型,再使用strstr函数即可。 const char* ptr = string.c_str();str = strstr(ptr)
2023-07-24 06:16:401

if (strstr(file_name_in, ".gz"))什么意思

strstr是字符串查找函数,这里的意思是在file_name_in里查找".gz"这个字符串,如果查到,返回查到的位置后的字符串,如果查不到,返回0,所以这行代码表示file_name_in里是否有".gz",如果有执行if下的代码。
2023-07-24 06:16:481

C语言字符串替换,用strstr函数和strncpy函数,hello world ,替换之后hel

char str[20]="hello worlddd"; strncpy(strstr(str,"world"),"hello",sizeof("hello")-1);
2023-07-24 06:17:441

C语言里用strstr函数,用一维数组会有错误,二维数组却没有,为什么?

那不可能。strstr只能用在以""结尾的字符型数组里查找一个字符串,如果字符型数组不以""结束,则找不到字符串时就会出错,但不一定报错。这与数组是一维的或二维的无关。
2023-07-24 06:17:571

php的 strstr() 函数效率高吗?该如何处理

str* 类的函数,总体来说比正则快。------解决方案--------------------------------------------------------查找且需要得到字符串,用strstr效率很高。只是查找存在与否不需要得到字符串,用strpos效率最高。------解决方案--------------------------------------------------------字符串查找函数肯定比正则类的效率要高。 这个strstr()又是效率非常高的一个。而且该函数是二进制安全的。------解决方案--------------------------------------------------------不很清楚 strstr 内部实现时的算法,不过你可以查看该函数的源码除非你用 c 来写,否则自定义函数不可能高于内置函数
2023-07-24 06:18:041

stm32 能使用strstr吗

不是STM32能不能用的问题,而是你选用的编程环境能不能用,你自己写一个实现strstr功能的函数和直接调用IDE里预置好的strstr,对于STM32来说都是一样的,最后编译器都会编译成STM32能懂的机械语言,主流的IAR和MDK,只要添加了对应的头文件支持,都可以用的。
2023-07-24 06:18:111

strstr函数用法

strstr返回子串is出现的首地址, 保存在q中.strcpy(q,q+i); 把跳过is后的所有内容复制到q开始的地址上, 即抛弃一个"is"串.
2023-07-24 06:18:301

strchr与strstr函数

热心观众还是挺多的
2023-07-24 06:18:445

VC ++ 中strstr来自哪个头文件

分类: 电脑/网络 >> 程序设计 >> 其他编程语言 问题描述: 在VC++中如果要查看字符串A中是否有B字符串 该用什么函数啊?(可不可以用strstr(a,b)啊,那它的头文件是什么) 解析: 可以, 头文件<string.h>LPTSTR StrStr( LPCTSTR lpFirst, LPCTSTR lpSrch ); 返回第一个匹配的地址,否则返回NULL lpFirst 被寻找的字符串 lpSrch 需要匹配的字符串
2023-07-24 06:18:581

strstr函数的效率为什么那么高

在C语言中strchr和strstr函数都被包含在头文件中,也就是要调用它们时要在程序前面包含头文件,也就是写这个语句:#includestrchr函数原型:char*strchr(char*str,intch);功能就是找出在字符串str中第一次出项字符ch的位置,找到就返回该字符位置的指针(也就是返回该字符在字符串中的地址的位置),找不到就返回空指针(就是null)。strstr函数原型:char*strstr(char*str1,char*str2);功能就是找出在字符串str1中第一次出项字符串str2的位置(也就是说字符串sr1中要包含有字符串str2),找到就返回该字符串位置的指针(也就是返回字符串str2在字符串str1中的地址的位置),找不到就返回空指针(就是null)。它们一个是求一个字符在字符串中得位置,另一个是求一个字符串在另一个字符串中的位置。这些在C语言书最后面中都有的,你要学会去多看看书,要会自己解决问题。学编程是要有耐心的,学久了就会懂了。
2023-07-24 06:19:051

关于strstr函数的问题,这样的报错怎么解决

strstr(str1,str2); 函数用于判断字符串str2是否是str1的子串。如果是,则该函数返回str2在str1中首次出现的地址;否则,返回NULL。 例如: //参考代码如下: #include using namespace std; int main() { char str[]="1234xyz";char *str1
2023-07-24 06:19:121

C++ VC strstr函数的仿真

char *strstr(register char *buf, register char *sub){register char *bp;if (!*sub) return buf;for (;;){if (!*buf) break;bp = buf;for (;;){if (!*sub) return buf;if (*bp++ != *sub++) break;}sub -= (unsigned long) bp;sub += (unsigned long) buf;buf += 1;}return 0;}
2023-07-24 06:19:191

php查询字符串里面是否有某个字符

PHP中如何判断一个字符串中是否有某个字符,如下:PHP语言是一个功能强大的嵌入式HTML脚本语言,它的易用性让许多程序员选择使用。PHP判断字符串的包含,可以使用PHP的内置函数strstr,strpos,stristr直接进行判断.也可以通过explode函数的作用写一个判断函数。1. strstr: 返回一个从被判断字符开始到结束的字符串,如果没有返回值,则不包含代码如下:< ?php /*如手册上的举例*/ $email = "user@example.com"; $domain = strstr($email, "@"); echo $domain; // prints @example.com ?> 2. stristr: 它和strstr的使用方法完全一样.唯一的区别是stristr不区分大小写.3. strpos: 返回boolean值.FALSE和TRUE不用多说.用 “===”进行判断.strpos在执行速度上都比以上两个函数快,另外strpos有一个参数指定判断的位置,但是默认为空.意思是判断整个字符串.缺点是对中文的支持不好. PHP判断字符串的包含代码如下:$str= "abc"; $needle= "a"; $pos = strpos($str, $needle); 4. 用explode进行判断 PHP判断字符串的包含代码如下:function checkstr($str){ $needle = "a";//判断是否包含a这个字符 $tmparray = explode($needle,$str); if(count($tmparray)>1){ return true; } else{ return false; } }
2023-07-24 06:19:261

php里面strstr的错误

strstr("1234567890","0"); 都应当是字符串
2023-07-24 06:19:462

C语言和strstr函数 相反的是哪个函数

没有这样的函数 不过你可以自己写不过意义不大 因为你没办法确定向前查找到哪里结束 除非你把原始的字符串开始部分也传进去这样本质上还是从前向后
2023-07-24 06:19:541

c语言字符串匹配的问题

晕!这就是最简单的了,你把头文件string.h包含起来调用strstr()函数就完成了。string.h的库函数strstr()帮你完成此项功能,strstr()的功能就是在一个字符串中查找另一个字符串。下面是测试函数及strstr()函数。#include#include#includeintmain(void)/*测试strstr()*/{char*A="abcdefghi",*B,*C;B=(char*)malloc(10);memset(B,0,sizeof(B));C=(char*)malloc(10);memset(C,0,sizeof(C));B[0]="f";B[1]="g";B[2]="h";C=strstr(A,B);printf("A="%s" ",A);printf("B="%s" ",B);printf("C="%s" ",C);return0;}#if0/*strstr()函数的返回值为s中匹配字窜的地址*/char*strstr(constchar*s,/*stringtosearch*/constchar*find/*substringtolookfor*/){char*t1;char*t2;charc;charc2;if((c=*find++)==0)/*anemptystring*/return((char*)(s));for(;;){while(((c2=*s++)!=0)&&(c2!=c));if(c2==0)return(NULL);t1=(char*)(s);t2=(char*)(find);while(((c2=*t2++)!=0)&&(*t1++==c2));if(c2==0)return((char*)(s-1));}}#endif
2023-07-24 06:20:141

strstr能不能以十六进制的方式查找字符串中的字符?

你确定字符串里面可以包含 ‘0x07",‘ 0xFF", 这个好像不是可见字符
2023-07-24 06:20:213

C语言库函数 strstr 查找字符串时是否区分大小写和空格?

char s[1];什么都不能存储值gets()函数)读取字符并把它们加载到s(字符串)里字符串以结尾
2023-07-24 06:20:281

C语言 字符串查找(要代码)

最简单的方法,直接用库函数strstr#include <stdio.h>#include <string.h>int str(char *a,char *b){ char *p; if(p=strstr(a,b)) return p-a+1; return -1;}int main(){ printf("%d ",str("abcde","cd")); return 0;}
2023-07-24 06:20:382

C语言,判断字符串2(str2)是否在str1内的那个函数怎么用?请详细说下,搜了几个看不是太懂,菜鸟,谢了

函数原型:char *strstr(char *str1, char *str2) 作用:在str1中查找str2第一次出现的位置参数:str1:在这个字符串里找。str2:需要找的字符串返回值:如果找到了,则返回在str1中的位置,否则返回NULL。如:char str1[]={"abcdefg"};那么strstr(str1,"cde")的结果就是 &str1[2] 或者说 str1+2
2023-07-24 06:20:463

C语言中如何查找字符串?

不用自己写,有一个函数叫strstr,原型是char*strstr(char*str1,char*str2),功能是找出str2字符串在str1字符串中第一次出现的位置。可以这样写:char*p=strstr(a,b);if(NULL!=p){//a中不存在b,添加相应代码}else{//a中存在b,添加相应代码}返回值p为a中第一次出现b的位置这个函数要包含头文件string.h
2023-07-24 06:20:564

自己实现strstr函数,不管怎样都返回null

strstr()函数是标准C语言函数,在linux系统下,运行命令man strstr 可以看到strstr()函数原型为:$ man strstrSYNOPSIS #include <<a href="https://www.baidu.com/s?wd=string.h&tn=44039180_cpr&fenlei=mv6quAkxTZn0IZRqIHckPjm4nH00T1d9nWubPj--PW9Bn1NWPH-W0ZwV5Hcvrjm3rH6sPfKWUMw85HfYnjn4nH6sgvPsT6KdThsqpZwYTjCEQLGCpyw9Uz4Bmy-bIi4WUvYETgN-TLwGUv3EPjm4nHbdnHT4" target="_blank" class="baidu-highlight">string.h</a>> char *strstr(const char *haystack, const char *needle);DESCRIPTION The strstr() function finds the first occurrence of the substring needle in the string haystack. The terminating "" characters are not compared.
2023-07-24 06:21:031

哪位大侠知道为什么LINUX下C的strstr()函数一查到空格就不在向后查找了(别的什么什么字符都行,就空格不行)

可能跟你查找的汉字有关系,因为汉字占两个字节,和相邻的字符组合起来的ASCII会乱。。你把汉字换成英文字符串试试,应该不会有问题。
2023-07-24 06:21:101

在keil4中可以使用strstr()函数吗?

你好! 可以 含有 strstr 函数 #include <string.h> 需要加入这个头文件
2023-07-24 06:21:181