c语言的strstr
㈠ c语言strstr()函数
思路:
从第一个字符串的第一位开始查找符合第二个字符串第一位的数据,如果找到,设定开始位置(记下来)
则循环判断是否符合下一位的数据,如果出现不符合,则回到原记录位置,重新查找符合第二个字符串的第一个位置的数据,如果找到,则。。。。循环前面一步的操作
如果完全符合,即第二个字符串遍历结束,则返回记录的位置
如此,你分析一下就可以得到一个嵌套循环的查找了
㈡ strstr函数全称
在C语言中 strchr 和 strstr函数都被包含在<string.h>头文件中,也就是要调用它们时要在程序前面包含<string.h>头文件,也就是写这个语句:#include<string.h>
strchr函数原型:char * strchr(char * str, int ch); 功能就是找出在字符串str中第一次出项字符ch的位置,找到就返回该字符位置的指针(也就是返回该字符在字符串中的地址的位置),找不到就返回空指针(就是 null)。
strstr 函数原型: char * strstr(char * str1,char * str2);功能就是找出在字符串str1中第一次出项字符串str2的位置(也就是说字符串sr1中要包含有字符串str2),找到就返回该字符串位置的指针(也就是返回字符串str2在字符串str1中的地址的位置),找不到就返回空指针(就是 null)。
它们一个是求一个字符在字符串中得位置,另一个是求一个字符串在另一个字符串中的位置。
这些在C语言书最后面中都有的,你要学会去多看看书,要会自己解决问题。学编程是要有耐心的,学久了就会懂了。
㈢ c语言 strstr函数
1万字也都输出,控制办法是将某个位置置为字符串结束符‘\0'。
#include <stdio.h>
#include <string.h>
void main()
{
char a[]="我我我我哦我哦喔喔喔we喔我哦我我我我我我我我哦我我我为我我";
char *b="we";
char *p = strstr(a, b);
printf( "%s",p ); // 这里输出"we喔我哦我我我我我我我我哦我我我为我我",有1万字也输出,除非遇见字符串结束符'\0'。
p[10] = '\0';
printf( "%d",p ); // 这里就只输出"we喔我哦我"了,因为p[10]被设置为结束符0了。
}
㈣ 关于C语言中strstr()函数的使用
因为这个函数是查找匹配的子字符串,如果没有找到完全匹配的就往回空
所以p
==
NULL
cout<<p;就是
cout
<<NULL;这个肯定会挂的
正确的做法就是
if(p)
cout
<<p;
else
cout<<"not
match"<<endl;
㈤ 请问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