快上网专注成都网站设计 成都网站制作 成都网站建设
成都网站建设公司服务热线:028-86922220

网站建设知识

十年网站开发经验 + 多家企业客户 + 靠谱的建站团队

量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决

c语言strstr等函数,c++strstr函数的用法

C语言中strstr()函数的使用分析

原型: char *strstr(const char *str1, const char *str2);

成都创新互联是一家集网站建设,延川企业网站建设,延川品牌网站建设,网站定制,延川网站建设报价,网络营销,网络优化,延川网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。

#includestring.h

找出str2字符串在str1字符串中第一次出现的位置(不包括str2的串结束符)。返回该位置的指针,如找不到,返回空指针。

Returns a pointer to the first occurrence of strSearch in str, or NULL if strSearch does not appear in str. IfstrSearch points to a string of zero length, the function returns str.

代码如下:

#include stdio.h

#include conio.h

#include string.h

#include stdlib.h

#pragma warning (disable:4996)

char *mystrstr(char *s1,char *s2);

int main(void)

{

char *s="Golden Global View";

char *l="ob";   //char *l=""

char *p;

system("cls");

p=mystrstr(s,l);

if (p!=NULL)

{

printf("%sn",p);

}

else

{

printf("Not Found!n");

}

getch();

return 0;

}

/*FROM 百科*/

char *mystrstr(char *s1,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;

}

}

另一个实现:

代码如下:

char *  strstr (buf, sub)

register char *buf;

register char *sub;

{

register char *bp;

register char *sp;

if (!*sub)

return buf;

while (*buf)

{

bp = buf;

sp = sub;

do {

if (!*sp)

return buf;

} while (*bp++ == *sp++);

buf += 1;

}

return 0;

}

又一个实现:

代码如下:

#include iostream

#include string

using namespace std;

//c语言实现strstr

const char* isSub(const char* str, const char *subs){

//特殊情况

if(!*subs)

return str;

const char* tmp=str;

while (*tmp!='')

{

//用于每次将父串向后移动一个字符

const char* tmp1=tmp;

//记录子串地址

const char* sub1=subs;

while (*sub1!=''*tmp1!='')

{

//若不相等则跳出,将父串后移一个字符

if (*sub1!=*tmp1)

break;

//若相等且子串下一个字符是末尾则是这个父串的子串

if (*sub1==*tmp1*(sub1+1)=='')

return tmp;

//若相等则继续比较下一个字符

if (*sub1==*tmp1)

{

sub1++;

tmp1++;

}

}

tmp++;

}

return NULL;

}

int main(){

char* str1="ababcdddb";

char* str="";

const char *res=isSub(str1,str);

if (res!=NULL)

{

cout res endl;

}

else

cout "null" endl;

//cout isSub(str1,str) endl;

return 0;

}

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这个函数

包含文件:string.h

函数名: strstr

函数原型:extern char *strstr(char *str1, char *str2);

功能:找出str2字符串在str1字符串中第一次出现的位置(不包括str2的串结束符)。

返回值:返回该位置的指针,如找不到,返回空指针。

C语言strstr()函数

思路:

从第一个字符串的第一位开始查找符合第二个字符串第一位的数据,如果找到,设定开始位置(记下来)

则循环判断是否符合下一位的数据,如果出现不符合,则回到原记录位置,重新查找符合第二个字符串的第一个位置的数据,如果找到,则。。。。循环前面一步的操作

如果完全符合,即第二个字符串遍历结束,则返回记录的位置

如此,你分析一下就可以得到一个嵌套循环的查找了

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

(''

==

*str2)

{

return

((char

*)str1);

}

while

(*str1)

{

s1

=

(char

*)str1;

s2

=

(char

*)str2;

while

((*s1

==

*s2)

*s1

*s2)

{

s1++;

s2++;

}

if

(''

==

*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

",

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;

}

strchr与strstr函数

char

*strchr(char

*str,

char

c);

在一个串中查找给定字符的第一个匹配之处

char

*strstr(char

*str1,

char

*str2);

在串中查找指定字符串的第一次出现

区别就是一个是招字符,一个是找字符串

#include

string.h

#include

stdio.h

int

main(void)

{

char

string[15];

char

*ptr,

c

=

'r';

strcpy(string,

"This

is

a

string");

ptr

=

strchr(string,

c);

if

(ptr)

printf("The

character

%c

is

at

position:

%d\n",

c,

ptr-string);

else

printf("The

character

was

not

found\n");

return

0;

}

#include

stdio.h

#include

string.h

int

main(void)

{

char

*str1

=

"Borland

International",

*str2

=

"nation",

*ptr;

ptr

=

strstr(str1,

str2);

printf("The

substring

is:

%s\n",

ptr);

return

0;

}


文章标题:c语言strstr等函数,c++strstr函数的用法
文章来源:http://6mz.cn/article/dscghoo.html

其他资讯