c语言string的用法大全_第1页
c语言string的用法大全_第2页
c语言string的用法大全_第3页
c语言string的用法大全_第4页
c语言string的用法大全_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 15/15c语言string的用法大全 C语言是一门面对过程的、抽象化的通用程序设计语言,广泛应用于底层开发。C语言能以简易的方式编译、处理低级存储器。C语言string的用法有哪些呢,请看看下面我为你整理总结的c语言string的用法大全_C语言中string使用方法。 c语言string的用法 函数原型:char *strdup(const char *s) 函数功能:字符串拷贝,目的空间由该函数支配 函数返回:指向拷贝后的字符串指针 参数说明:src-待拷贝的源字符串 所属文件:string.h cpp view plain #includestdio.h #includestring

2、.h #includealloc.h intmain() char*dup_str,*string=abcde; dup_str=strdup(string); printf(%s,dup_str); free(dup_str); return0; 函数名称:strcpy 函数原型:char* strcpy(char* str1,char* str2); 函数功能:把str2指向的字符串拷贝到str1中去 函数返回:返回str1,即指向str1的指针 参数说明: 所属文件:string.h cpp view plain #includestdio.h #includestring.h intm

3、ain() charstring10; char*str1=abcdefghi; strcpy(string,str1); printf(thestringis:%sn,string); return0; 函数名称:strncpy 函数原型:char *strncpy(char *dest, const char *src,intcount) 函数功能:将字符串src中的count个字符拷贝到字符串dest中去 函数返回:指向dest的指针 参数说明:dest-目的字符串,src-源字符串,count-拷贝的字符个数 所属文件:string.h cpp view plain #includes

4、tdio.h #includestring.h intmain() char*src=bbbbbbbbbbbbbbbbbbbb;/20bs chardest50=aaaaaaaaaaaaaaaaaaaa;/20as puts(dest); strncpy(dest,src,10); puts(dest); return0; 输出: cpp view plain /* aaaaaaaaaaaaaaaaaaaa bbbbbbbbbbaaaaaaaaaa */ 留意:strncpy只复制指定长度的字符,不会自动在末尾加0。假设指定长度超过源字符串长度,不够的局部补0, 函数名称:strcat 函数原

5、型:char* strcat(char * str1,char * str2); 函数功能:把字符串str2接到str1后面,str1最终的0被取消 函数返回:str1 参数说明: 所属文件:string.h cpp view plain #includestdio.h #includestring.h intmain() charbuffer80; strcpy(buffer,Hello); strcat(buffer,world); printf(%sn,buffer); return0; 函数名称:strncat 函数原型:char *strncat(char *dest, const

6、char *src, size_t maxlen) 函数功能:将字符串src中前maxlen个字符连接到dest中 函数返回: 参数说明: 所属文件:string.h cpp view plain #includestdio.h #includestring.h charbuffer80; intmain() strcpy(buffer,Hello); strncat(buffer,world,8); printf(%sn,buffer); strncat(buffer,*,4); printf(%sn,buffer); return0; 留意:与strncpy不同的是,strncat会自动在

7、末尾加0,假设指定长度超过源字符串长度,那么只复制源字符串长度即停顿 函数名称:strcmp 函数原型:int strcmp(char * str1,char * str2); 函数功能:比较两个字符串str1,str2. 函数返回:str1str2,返回负数;str1=str2,返回 0;str1str2,返回正数. 参数说明: 所属文件:string.h cpp view plain #includestring.h #includestdio.h intmain() char*buf1=aaa,*buf2=bbb,*buf3=ccc; intptr; ptr=strcmp(buf2,bu

8、f1); if(ptr0) printf(buffer2isgreaterthanbuffer1n); else printf(buffer2islessthanbuffer1n); ptr=strcmp(buf2,buf3); if(ptr0) printf(buffer2isgreaterthanbuffer3n); else printf(buffer2islessthanbuffer3n); return0; 函数名称:strncmp 函数原型:int strncmp(char *str1,char *str2,int count) 函数功能:对str1和str2中的前count个字符

9、按字典挨次比较 函数返回:小于0:str1str2,等于0:str1=str2,大于0:str1str2 参数说明:str1,str2-待比较的字符串,count-比较的长度 所属文件:string.h cpp view plain #includestring.h #includestdio.h intmain() charstr1=aabbc;/ charstr2=abbcd;/ /为使测试程序更简练,此处假定了strncmp只返回-1,0,1三个数 charres_info=,=,; intres; /前1个字符比较 res=strncmp(str1,str2,1); printf(1:

10、str1%cstr2n,res_infores+1); /前3个字符比较 res=strncmp(str1,str2,3); printf(3:str1%cstr2n,res_infores+1); 输出: cpp view plain /* 1:str1=str2 3:str1str2 */ 函数名称:strpbrk 函数原型:char *strpbrk(const char *s1, const char *s2) 函数功能:得到s1中第一个“同时也出如今s2中”字符的位置指针 函数返回:位置指针 参数说明: 所属文件:string.h cpp view plain #includestd

11、io.h #includestring.h intmain() char*p=Findallvowels; p=strpbrk(p+1,aeiouAEIOU); while(p) printf(%sn,p); p=strpbrk(p+1,aeiouAEIOU); return0; 输出: cpp view plain /* indallvowels allvowels owels els */ 函数名称:strcspn 函数原型:int strcspn(const char *s1, const char *s2) 函数功能:统计s1中从头开场直到第一个“来自s2中的字符”消灭的长度 函数返回

12、:长度 参数说明: 所属文件:string.h cpp view plain #includestdio.h #includestring.h intmain() printf(%dn,strcspn(abcbcadef,cba); printf(%dn,strcspn(xxxbcadef,cba); printf(%dn,strcspn(123456789,cba); return0; 输出: cpp view plain /* 0 3 9 */ 函数名称:strspn 函数原型:int strspn(const char *s1, const char *s2) 函数功能:统计s1中从头开

13、场直到第一个“不来自s2中的字符”消灭的长度 函数返回:位置指针 参数说明: 所属文件:string.h html view plain #includestdio.h #includestring.h #includealloc.h intmain() printf(%dn,strspn(abcbcadef,cba); printf(%dn,strspn(xxxbcadef,cba); printf(%dn,strspn(123456789,cba); return0; 输出: cpp view plain /* 6 0 0 */ 函数名称:strchr 函数原型:char* strchr(

14、char* str,char ch); 函数功能:找出str指向的字符串中第一次消灭字符ch的位置 函数返回:返回指向该位置的指针,如找不到,那么返回空指针 参数说明:str-待搜寻的字符串,ch-查找的字符 所属文件:string.h cpp view plain #includestring.h #includestdio.h intmain() char*str=Thisisastring!; charch; char*p; while(1) printf(Pleaseinputachar:); ch=getchar(); p=strchr(str,ch); if(p) printf(%

15、cisthe%dcharacterof%sn,ch,(int)(p-str+1),str); else printf(Notfound!n); printf(PressESCtoquit!nn); if(27=getch() break; fflush(stdin); return0; 运行结果: cpp view plain /* Pleaseinputachar:i iisthe3characterofThisisastring! PressESCtoquit! Pleaseinputachar:l Notfound! PressESCtoquit! Pleaseinputachar:s

16、sisthe4characterofThisisastring! PressESCtoquit! */ 函数名称:strrchr 函数原型:char *strrchr(const char *s, int c) 函数功能:得到字符串s中最终一个含有c字符的位置指针 函数返回:位置指针 参数说明: 所属文件:string.h cpp view plain #includestring.h #includestdio.h intmain() charstring15; char*ptr,c=r; strcpy(string,Thisisastring); ptr=strrchr(string,c)

17、; if(ptr) printf(Thecharacter%cisatposition:%d,c,ptr-string); else printf(Thecharacterwasnotfound); return0; 函数名称:strstr 函数原型:char* strstr(char* str1,char* str2); 函数功能:找出str2字符串在str1字符串中第一次消灭的位置(不包括str2的串完毕符) 函数返回:返回该位置的指针,如找不到,返回空指针 参数说明: 所属文件:string.h cpp view plain #includestdio.h #includestring.

18、h intmain() char*str1=OpenWatcomC/C+,*str2=Watcom,*ptr; ptr=strstr(str1,str2); printf(Thesubstringis:%sn,ptr); return0; 输出: The substringis:Watcom C/C+ 函数名称:strrev 函数原型:char *strrev(char *s) 函数功能:将字符串中的全部字符颠倒次序排列 函数返回:指向s的指针 参数说明: 所属文件:string.h cpp view plain #includestring.h #includestdio.h intmain

19、() charforward=string;/原文中定义为char*是不对的,指向代码段的指针内容是不行变的 printf(Beforestrrev():%s,forward); strrev(forward); printf(Afterstrrev():%s,forward); return0; 输出: cpp view plain /* Beforestrrev():string Afterstrrev():gnirts */ 函数名称:strnset 函数原型:char *strnset(char *s, int ch, size_t n) 函数功能:将字符串s中前n个字符设置为ch的值

20、 函数返回:指向s的指针 参数说明: 所属文件:string.h cpp view plain #includestdio.h #includestring.h intmain() charstring=aaaaaaaaaaaaaaaaaaaaaaa; charletter=x; printf(stringbeforestrnset:%sn,string); strnset(string,letter,10); printf(stringafterstrnset:%sn,string); return0; 输出: cpp view plain /* stringbeforestrnset:aa

21、aaaaaaaaaaaaaaaaaaaaa stringafterstrnset:xxxxxxxxxxaaaaaaaaaaaaa */ 函数名称:strset 函数原型:char *strset(char *s, int ch) 函数功能:将字符串s中全部字符设置为ch的值 函数返回:指向s的指针 参数说明: 所属文件:string.h cpp view plain #includestdio.h #includestring.h intmain() charstring10=123456789; charsymbol=c; printf(Beforestrset():%s,string);

22、strset(string,symbol); printf(Afterstrset():%s,string); return0; 函数名称:strtok 函数原型:char *strtok(char *s1, const char *s2) 函数功能:分解s1字符串为用特定分隔符分隔的多个字符串(一般用于将英文句分解为单词) 函数返回:字符串s1中首次消灭s2中的字符前的子字符串指针 参数说明:s2一般设置为s1中的分隔字符 规定进展子调用时即分割s1的其次、三及后续子串第一参数必需是NULL 在每一次匹配成功后,将s1中分割出的子串位置替换为NULL(摘下链中第一个环),因此s1被破坏了 函

23、数会记忆指针位置以供下一次调用 所属文件:string.h cpp view plain #includestring.h #includestdio.h intmain() char*p; char*buffer; char*delims=.,; buffer=strdup(Findwords,allofthem.); printf(%sn,buffer); p=strtok(buffer,delims); while(p!=NULL) printf(word:%sn,p); p=strtok(NULL,delims); printf(%sn,buffer); return0; /依据测试,

24、可以随时给strtok的第一个参数输入一个新的字符串,开场新字符串的分隔 PS:依据测试,可以随时给strtok的第一个参数输入一个新的字符串,开场新字符串的分隔 函数名称:strupr 函数原型:char *strupr(char *s) 函数功能:将字符串s中的字符变为大写 函数返回: 参数说明: 所属文件:string.h cpp view plain #includestdio.h #includestring.h intmain() charstring=abcdefghijklmnopqrstuvwxyz,*ptr;/会影响原字符串的内存,用char来声明 ptr=strupr(s

25、tring); printf(%s,ptr); return0; 函数名称:strlwr 函数原型:char *strlwr(char *s) 函数功能:将字符串中的字符变为小写字符 函数返回:指向s的指针 参数说明: 所属文件:string.h cpp view plain #includestring.h intmain() charstr=HOWTOSAY; printf(%s,strlwr(str); return0; 函数名称:strerror 函数原型:char *strerror(int errnum) 函数功能:得到错误信息的内容信息 函数返回:错误提示信息字符串指针 参数说明

26、:errnum-错误编号 所属文件:string.h cpp view plain #includestdio.h #includeerrno.h intmain() char*buffer; buffer=strerror(errno); printf(Error:%s,buffer); return0; 函数名称:memcpy 函数原型:void *memcpy(void *dest, const void *src, size_t n) 函数功能:字符串拷贝 函数返回:指向dest的指针 参数说明:src-源字符串,n-拷贝的最大长度 所属文件:string.h,mem.h cpp vi

27、ew plain #includestdio.h #includestring.h intmain() charsrc=*; chardest=abcdefghijlkmnopqrstuvwxyz0123456709; char*ptr; printf(destinationbeforememcpy:%sn,dest); ptr=memcpy(dest,src,strlen(src); if(ptr) printf(destinationaftermemcpy:%sn,dest); else printf(memcpyfailed); return0; 输出: cpp view plain /

28、* destinationbeforememcpy:abcdefghijlkmnopqrstuvwxyz0123456709 destinationaftermemcpy:*456709 */ 函数名称:memccpy 函数原型:void *memccpy(void *dest, const void *src, int c, size_t n) 函数功能:字符串拷贝,到指定长度或遇到指定字符时停顿拷贝 函数返回: 参数说明:src-源字符串指针,c-中止拷贝检查字符,n-长度,dest-拷贝底目的字符串指针 所属文件:string.h,mem.h cpp view plain #includ

29、estring.h #includestdio.h intmain() char*src=Thisisthesourcestring; chardest50; char*ptr; ptr=memccpy(dest,src,c,strlen(src); if(ptr) *ptr=0; printf(Thecharacterwasfound:%s,dest); else printf(Thecharacterwasntfound); return0; 输出: cpp view plain /* Thecharacterwasfound:Thisisthesourc */ PS:指定字符被复制到de

30、st中,memccpy返回了dest中指定字符的下一处的地址,返回NULL表示未遇到指定字符 函数名称:memchr 函数原型:void *memchr(const void *s, int c, size_t n) 函数功能:在字符串中第开场n个字符中查找某个字符c的位置 函数返回:返回c的位置指针,返回NULL时表示未找到 参数说明:s-要搜寻的字符串,c-要查找的字符,n-指定长度 所属文件:string.h,mem.h cpp view plain #includestring.h #includestdio.h intmain() charstr17; char*ptr; strcp

31、y(str,Thisisastring); ptr=memchr(str,r,strlen(str); if(ptr) printf(Thecharacterrisatposition:%d,ptr-str); else printf(Thecharacterwasnotfound); return0; 函数名称:memcmp 函数原型:int memcmp(const void *s1, const void *s2,size_t n) 函数功能:按字典挨次比较两个串s1和s2的前n个字节 函数返回:0,=0,0分别表示s1,=,s2 参数说明:s1,s2-要比较的字符串,n-比较的长度 所

32、属文件:string.h,mem.h cpp view plain #includestdio.h #includestring.h intmain() char*buf1=ABCDE123; char*buf2=abcde456; intstat; stat=memcmp(buf1,buf2,5); printf(Thestringstoposition5are); if(stat)printf(not); printf(thesamen); return0; 函数名称:memicmp 函数原型:int memicmp(const void *s1, const void *s2, size_t n) 函数功能:按字典挨次、不考虑字母大小写对字符串s1,s2前n个字符比较 函数返回:0,=0,0分别表示s1,=,s2 参数说明:s1,s2-要比较的字符串,n-比较的长度 所属文件:string.h,mem.h cpp view plain #includestdio.h #includestring.h intmain() char*buf1=ABCDE123; char*buf2=abcde456; ints

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论