首页技术strstr函数返回值 strstr返回什么指针

strstr函数返回值 strstr返回什么指针

编程之家2026-06-08954次浏览

大家好,关于strstr函数返回值很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于strstr返回什么指针的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还望关注下本站哦,希望对各位有所帮助!

strstr函数返回值 strstr返回什么指针

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

函数原型是char*strstr(char*str1,char*str2);作用是找出str2字符串在str1字符串中第一次出现的位置(不包括str2的串结束符)

如果找到返回该位置的指针。若找不到,返回NULL指针。如果不用库函数写,就得用到串操作中的模式匹配算法,或者他的改进算法!!!

这里给你一个模式匹配算法不明白的,可以交流下!!

#include<stdio.h>

#include<string.h>

int main()

strstr函数返回值 strstr返回什么指针

{

char a[10];

char b[5];

int i,j,m,n,k;

printf("输入字符串a:");

scanf("%s",a);

strstr函数返回值 strstr返回什么指针

printf("输入字符串b:");

scanf("%s",b);

i=k=0;

j=0;

while(i<strlen(a)&&j<strlen(b))

{

if(a[i]==b[j])

{

i++;

j++;

}

else

{

j=0;k++;

i=k;//可用于记录原来i的位置;

}

}

if(j>=strlen(b))//判断找到字符串的条件

{

printf("找到字符串%s",b);

return 1;

}

else

{

printf("未找到字符串%s\n",b);

return 0;

}

}

c编程高手团队正在招新,有意者速速行动,一起学习,一起努力!!

c++中 string 类的find函数的用法

string类的查找函数:

int find(char c, int pos= 0) const;//从pos开始查找字符c在当前字符串的位置

int find(const char*s, int pos= 0) const;//从pos开始查找字符串s在当前串中的位置

int find(const char*s, int pos, int n) const;//从pos开始查找字符串s中前n个字符在当前串中的位置

int find(const string&s, int pos= 0) const;//从pos开始查找字符串s在当前串中的位置

//查找成功时返回所在位置,失败返回string::npos的值

int rfind(char c, int pos= npos) const;//从pos开始从后向前查找字符c在当前串中的位置

int rfind(const char*s, int pos= npos) const;

int rfind(const char*s, int pos, int n= npos) const;

int rfind(const string&s,int pos= npos) const;

//从pos开始从后向前查找字符串s中前n个字符组成的字符串在当前串中的位置,成功返回所在位置,失败时返回string::npos的值

int find_first_of(char c, int pos= 0) const;//从pos开始查找字符c第一次出现的位置

int find_first_of(const char*s, int pos= 0) const;

int find_first_of(const char*s, int pos, int n) const;

int find_first_of(const string&s,int pos= 0) const;

//从pos开始查找当前串中第一个在s的前n个字符组成的数组里的字符的位置。查找失败返回string::npos

int find_first_not_of(char c, int pos= 0) const;

int find_first_not_of(const char*s, int pos= 0) const;

int find_first_not_of(const char*s, int pos,int n) const;

int find_first_not_of(const string&s,int pos= 0) const;

//从当前串中查找第一个不在串s中的字符出现的位置,失败返回string::npos

int find_last_of(char c, int pos= npos) const;

int find_last_of(const char*s, int pos= npos) const;

int find_last_of(const char*s, int pos, int n= npos) const;

int find_last_of(const string&s,int pos= npos) const;

int find_last_not_of(char c, int pos= npos) const;

int find_last_not_of(const char*s, int pos= npos) const;

int find_last_not_of(const char*s, int pos, int n) const;

int find_last_not_of(const string&s,int pos= npos) const;

//find_last_of和find_last_not_of与find_first_of和find_first_not_of相似,只不过是从后向前查找

string.h的函数用法

下面为string.h文件中函数的详细用法,附加实例:函数名:strcpy

功能:拷贝一个字符串到另一个

用法: char*strcpy(char*destin, char*source);

程序例:#include<stdio.h>#include<string.h>intmain(void){charstring[10];char*str1=abcdefghi;strcpy(string,str1);printf(%s

,string);return0;}函数名:strncpy

原型:char*strncpy(char*dest, char*src,size_tn);

功能:将字符串src中最多n个字符复制到字符数组dest中(它并不像strcpy一样遇到NULL才停止复制,而是等凑够n个字符才开始复制),返回指向dest的指针。函数名:strcat功能:字符串拼接函数

用法: char*strcat(char*destin, char*source);

程序例:#include<string.h>#include<stdio.h>voidmain(){chardestination[25];char*blank=,*c=C++,*Borland=Borland;strcpy(destination,Borland);strcat(destination,blank);strcat(destination,c);printf(%s

,destination);}函数名:strchr

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

用法: char*strchr(char*str, char c);

程序例:#include<string.h>#include<stdio.h>intmain(void){charstring[15];char*ptr,c='r';strcpy(string,Thisisastring);ptr=strchr(string,c);if(ptr)printf(Thecharacter%cisatposition:%d

,c,ptr-string);elseprintf(Thecharacterwasnotfound

);return0;}函数名:strcmp

功能:串比较

用法: intstrcmp(char*str1, char*str2);

看Asic码,str1>str2,返回值> 0;两串相等,返回0

程序例:#include<string.h>#include<stdio.h>intmain(void){char*buf1=aaa,*buf2=bbb,*buf3=ccc;intptr;ptr=strcmp(buf2,buf1);if(ptr>0)printf(buffer2isgreaterthanbuffer1

);elseprintf(buffer2islessthanbuffer1

);ptr=strcmp(buf2,buf3);if(ptr>0)printf(buffer2isgreaterthanbuffer3

);elseprintf(buffer2islessthanbuffer3

);return0;}函数名:strnicmp

功能:将一个串中的一部分与另一个串比较,不管大小写

用法: intstrnicmp(char*str1, char*str2, unsigned maxlen);

程序例:#include<string.h>#include<stdio.h>intmain(void){char*buf1=BBB,*buf2=bbb;intptr;ptr=strnicmp(buf2,buf1);if(ptr>0)printf(buffer2isgreaterthanbuffer1

);if(ptr<0)printf(buffer2islessthanbuffer1

);if(ptr==0)printf(buffer2equalsbuffer1

);return0;}函数名:strlen

功能: strlen函数求的是字符串的长度,它求得方法是从字符串的首地址开始到遇到第一个'\0'停止计数,如果你只定义没有给它赋初值,这个结果是不定的,它会从字符串首地址一直记下去,直到遇到'\0'才会停止。

原型:size_tstrlen(const char*s);#include<stdio.h>#include<string.h>intmain(){inti=0;char*he=Hello,world;i=strlen(he);printf(字符串长度为%d

,i);return0;}运行结果:

字符串长度为11函数名:strcspn

功能:在串中查找第一个给定字符集内容的段

用法: intstrcspn(char*str1, char*str2);

程序例:#include<stdio.h>#include<string.h>{intmain(void)char*string1=1234567890;char*string2=747DC8;intlength;length=strcspn(string1,string2);printf(Characterwherestringsintersectisatposition%d

,length);return0;}函数名:strdup

功能:将串拷贝到新建的位置处

用法: char*strdup(char*str);

程序例:#include<stdio.h>#include<string.h>#include<alloc.h>intmain(void){char*dup_str,*string=abcde;dup_str=strdup(string);printf(%s

,dup_str);free(dup_str);return0;}函数名:stricmp

功能:以大小写不敏感方式比较两个串

用法: intstricmp(char*str1, char*str2);

程序例:#include<string.h>#include<stdio.h>intmain(void){char*buf1=BBB,*buf2=bbb;intptr;ptr=stricmp(buf2,buf1);if(ptr>0)printf(buffer2isgreaterthanbuffer1

);if(ptr<0)printf(buffer2islessthanbuffer1

);if(ptr==0)printf(buffer2equalsbuffer1

);return0;}函数名:strerror

功能:返回指向错误信息字符串的指针

用法: char*strerror(int errnum);

程序例:#include<stdio.h>#include<errno.h>intmain(void){char*buffer;buffer=strerror(errno);printf(Error:%s

,buffer);return0;}函数名:strcmpi

功能:将一个串与另一个比较,不管大小写

用法: intstrcmpi(char*str1, char*str2);

程序例:#include<string.h>#include<stdio.h>intmain(void){char*buf1=BBB,*buf2=bbb;intptr;ptr=strcmpi(buf2,buf1);if(ptr>0)printf(buffer2isgreaterthanbuffer1

);if(ptr<0)printf(buffer2islessthanbuffer1

);if(ptr==0)printf(buffer2equalsbuffer1

);return0;}函数名:strncmp

功能:串比较

用法: intstrncmp(char*str1, char*str2, int maxlen);

程序例:#include<string.h>#include<stdio.h>intmain(void){char*buf1=aaabbb,*buf2=bbbccc,*buf3=ccc;intptr;ptr=strncmp(buf2,buf1,3);if(ptr>0)printf(buffer2isgreaterthanbuffer1

);elseprintf(buffer2islessthanbuffer1

);ptr=strncmp(buf2,buf3,3);if(ptr>0)printf(buffer2isgreaterthanbuffer3

);elseprintf(buffer2islessthanbuffer3

);return0;}函数名:strncpy

功能:串拷贝

用法: char*strncpy(char*destin, char*source, int maxlen);

程序例:#include<stdio.h>#include<string.h>intmain(void){charstring[10];char*str1=abcdefghi;strncpy(string,str1,3);string[3]='\0';printf(%s

,string);return0;}函数名:strnicmp

功能:不注重大小写地比较两个串

用法: int strnicmp(char*str1, char*str2, unsigned maxlen);

程序例:#include<string.h>#include<stdio.h>intmain(void){char*buf1=BBBccc,*buf2=bbbccc;intptr;ptr=strnicmp(buf2,buf1,3);if(ptr>0)printf(buffer2isgreaterthanbuffer1

);if(ptr<0)printf(buffer2islessthanbuffer1

);if(ptr==0)printf(buffer2equalsbuffer1

);return0;}函数名:strnset

功能:将一个字符串前n个字符都设为指定字符

用法: char*strnset(char*str, char ch, unsigned n);

程序例:#include<stdio.h>#include<string.h>intmain(void){char*string=abcdefghijklmnopqrstuvwxyz;charletter='x';printf(stringbeforestrnset:%s

,string);strnset(string,letter,13);printf(stringafterstrnset:%s

,string);return0;}函数名:strpbrk

功能:在串中查找给定字符集中的字符

用法: char*strpbrk(char*str1, char*str2);

程序例:#include<stdio.h>#include<string.h>intmain(void){char*string1=abcdefghijklmnopqrstuvwxyz;char*string2=onm;char*ptr;ptr=strpbrk(string1,string2);if(ptr)printf(strpbrkfoundfirstcharacter:%c

,*ptr);elseprintf(strpbrkdidn'tfindcharacterinset

);return0;}函数名:strrchr

功能:在串中查找指定字符的最后一个出现

用法: char*strrchr(char*str, char c);

程序例:#include<string.h>#include<stdio.h>intmain(void){charstring[15];char*ptr,c='r';strcpy(string,Thisisastring);ptr=strrchr(string,c);if(ptr)printf(Thecharacter%cisatposition:%d

,c,ptr-string);elseprintf(Thecharacterwasnotfound

);return0;}函数名:strrev

功能:串倒转

用法: char*strrev(char*str);

程序例:#include<string.h>#include<stdio.h>intmain(void){char*forward=string;printf(Beforestrrev():%s

,forward);strrev(forward);printf(Afterstrrev():%s

,forward);return0;}函数名:strspn

功能:返回字符串中第一个不在指定字符串中出现的字符下标

用法: int strspn(char*str1, char*str2);

程序例:#include<stdio.h>#include<string.h>#include<alloc.h>intmain(void){char*string1=1234567890;char*string2=123DC8;intlength;length=strspn(string1,string2);printf(Characterwherestringsdifferisatposition%d

,length);return0;}函数名:strstr

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

用法: char*strstr(char*str1, char*str2);

程序例:#include<stdio.h>#include<string.h>intmain(void){char*str1=BorlandInternational,*str2=nation,*ptr;ptr=strstr(str1,str2);printf(Thesubstringis:%s

,ptr);return0;}函数名: strtod

功能:将字符串转换为double型值

用法: double strtod(char*str, char**endptr);

程序例:#include<stdio.h>#include<stdlib.h>intmain(void){charinput[80],*endptr;doublevalue;printf(Enterafloatingpointnumber:);gets(input);value=strtod(input,&endptr);printf(Thestringis%sthenumberis%lf

,input,value);return0;}函数名:strtok

功能:查找由在第二个串中指定的分界符分隔开的单词

用法: char*strtok(char*str1, char*str2);

程序例:#include<string.h>#include<stdio.h>intmain(void){charinput[16]=abc,d;char*p;/*strtokplacesaNULLterminatorinfrontofthetoken,iffound*/p=strtok(input,,);if(p)printf(%s

,p);/*AsecondcalltostrtokusingaNULLasthefirstparameterreturnsapointertothecharacterfollowingthetoken*/p=strtok(NULL,,);if(p)printf(%s

,p);return0;}函数名:strtol

功能:将串转换为长整数

用法: long strtol(char*str, char**endptr, int base);

程序例:#include<stdlib.h>#include<stdio.h>intmain(void){char*string=87654321,*endptr;longlnumber;/*strtolconvertsstringtolonginteger*/lnumber=strtol(string,&endptr,10);printf(string=%slong=%ld

,string,lnumber);return0;}函数名:strupr

功能:将串中的小写字母转换为大写字母

用法: char*strupr(char*str);

程序例:#include<stdio.h>#include<string.h>intmain(void){charstring[]=abcdefghijklmnopqrstuvwxyz,*ptr;//定义为数组才能修改/*convertsstringtouppercasecharacters*/ptr=strupr(string);printf(%s

,ptr);return0;}函数名: swab

功能:交换字节

用法: void swab(char*from, char*to, int nbytes);

程序例:#include<stdlib.h>#include<stdio.h>#include<string.h>charsource[15]=rFnakoBlrnad;chartarget[15];intmain(void){swab(source,target,strlen(source));printf(Thisistarget:%s

,target);return0;}原型:extern char*strstr(char*haystack, char*needle);

*所在头文件:#include<string.h>

*功能:从字符串haystack中寻找needle第一次出现的位置(不比较结束符NULL)。

*说明:返回指向第一次出现needle位置的指针,如果没找到则返回NULL。

文章到此结束,如果本次分享的strstr函数返回值和strstr返回什么指针的问题解决了您的问题,那么我们由衷的感到高兴!

wow拉文凯斯的遗产(拉文凯斯的遗产奥术虹吸)豆包ai助手免费版 豆包ai软件如何下载免费版方法