strstr(str1(c语言strstr函数用法)
其实strstr(str1的问题并不复杂,但是又很多的朋友都不太了解c语言strstr函数用法,因此呢,今天小编就来为大家分享strstr(str1的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!
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\n",c,ptr); else printf("Thecharacterwasnotfound\n");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;
}
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。
c++ string 怎么用
用法和步骤:
1.定义和构造初始化
string提供了很多构造函数,可以以多种方式来初始化string字符串。
2.赋值,拼接字符串
string重载了=++=等多种运算符,让字符串组合拼接更简单。
3.访问字符操作
string可以按数组方式,以下标来访问。还可以用at()函数访问指定的字符。
4.可以使用 STL的接口
可以把 string理解为一个特殊的容器,容器中装的是字符。
5.比较操作==!=>>=<<= compare等
string的比较操作,按字符在字典中的顺序进行逐一比较。在字典前面的字符小于后面的字符。
6.查找 find rfind
string中除了find、rfind,还有find_first_of等函数也提供了强大的查找功能。
7.除了string中的find函数外,char[]数组也有强大的查找函数
C++中有strstr、strchr等也有查找功能。函数说明如下:
char*strstr( const char*str, const char*substr);返回指针,指向substr在字符串str中首次出现的位置。
char*strchr( const char*str, int ch);返回指针,指向 str中字符ch首次出现的位置。
8.与 char[ ]的相互转换
copy(),返回指针,赋值给char[ ]数组名;
c_str(),返回 const类型的指针;
data(),将内容以字符数组的形式返回。
9.分割字符串
常用 strtok和 substr来分割字符串。
10.string大小分配函数
capacity(),返回容器在它已经分配的内存中可以容纳多少元素;
resize(Container::size_type n),强制把容器改为容纳n个元素。
11.string中的字符替换、删除操作。
12.char[ ]常用的比较、拼接字符串功能
任意字符查找:char*strpbrk( const char*str1, const char*str2);
内存拷贝:void*memcpy( void*to, const void*from, size_t count);
如果 to和 from重叠,则函数行为不确定。memset()对内存初始化。如:memset( array,'\0', sizeof(array));这是将数组的所以元素设置成零的很方便的方法。
注意事项:
1.使用string,必须要包含头文件string.h
2.C++中,最好使用string来代替char[ ]
关于strstr(str1的内容到此结束,希望对大家有所帮助。