C语言字符串操作常用库函数

函数名:strrchr

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

用法:char*strrchr(char*str,charc);举例:charfullname="./lib/lib1.so";char*ptr;ptr=strrchr(fullname,'/');printf("filenameis%s",++ptr);//运行结果:filenameislib1.so函数名:strchr

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

用法:char*strchr(char*str,charc);举例:charfullname="./lib/lib1.so";char*ptr;ptr=strrchr(fullname,'.');printf("afterstrchr()is%s",++ptr);//运行结果:afterstrchr()is/lib/lib1.so函数名:strtok

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

用法:char*strtok(char*s,char*delim);

说明:

1.strtok函数的实质上的处理是,strtok在s中查找包含在delim中的字符并用NULL('\0′)来替换,直到找遍整个字符串。这句话有两层含义:(1)每次调用strtok函数只能获得一个分割单位。(2)要获得所有的分割单元必须反复调用strtok函数。

2.strtok函数以后的调用时的需用NULL来替换s.

3.形参s(要分割的字符串)对应的变量应用chars[]="…."形式,而不能用char*s="…."形式。举例:voidmain(){charbuf[]="GoldenGlobalView";char*token=strtok(buf,"");while(token!=NULL){printf("%s",token);token=strtok(NULL,"");}return0;}/*其结果为:GoldenGlobalView*/函数名:strncpy

功能:把src所指由NULL结束的字符串的前n个字节复制到dest所指的数组中

用法:char*strncpy(char*dest,char*src,intn);

说明:

如果src的前n个字节不含NULL字符,则结果不会以NULL字符结束。

如果src的长度小于n个字节,则以NULL填充dest直到复制完n个字节。

src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。

返回指向dest的指针。举例:#include#includemain(){charbuf[4];char*s="abcdefg";strncpy(buf,s,4);printf("%s\n",buf);return0;}/*运行结果:abcd*/函数名:stpcpy

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

用法:char*stpcpy(char*destin,char*source);举例:#include#includeintmain(void){charstring[10];char*str1="abcdefghi";stpcpy(string,str1);printf("%s\n",string);return0;}/*运行结果abcdefghi*/函数名:strcat

功能:字符串拼接函数

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

举例:#include#includeintmain(void){chardestination[25];char*blank="",*c="C++",*Borland="Borland";strcpy(destination,Borland);strcat(destination,blank);strcat(destination,c);printf("%s\n",destination);return0;}/*运行结果:BorlandC++*/函数名:strcmp

功能:串比较

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

看Asic码,str1>str2,返回值>0;两串相等,返回0举例:#include#includeintmain(void){char*buf1="aaa",*buf2="bbb";intptr;ptr=strcmp(buf2,buf1);if(ptr>0)printf("buffer2isgreaterthanbuffer1\n");elseif(ptr#includeintmain(void){char*buf1="BBB",*buf2="bbb";intptr;ptr=strcmpi(buf2,buf1);if(ptr>0)printf("buffer2isgreaterthanbuffer1\n");if(ptr#include#includeintmain(void){char*string1="1234567890";char*string2="747DC8";intlength;length=strcspn(string1,string2);printf("Characterwherestringsintersectisatposition%d\n",length);return0;}函数名:strdup

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

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

举例:#include#include#includeintmain(void){char*dup_str,*string="abcde";dup_str=strdup(string);printf("%s\n",dup_str);free(dup_str);return0;}函数名:stricmp

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

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

举例:#include#includeintmain(void){char*buf1="BBB",*buf2="bbb";intptr;ptr=stricmp(buf2,buf1);if(ptr>0)printf("buffer2isgreaterthanbuffer1\n");if(ptr字符串的指针

用法:char*strerror(interrnum);

举例:#include#includeintmain(void){char*buffer;buffer=strerror(errno);printf("Error:%s\n",buffer);return0;}函数名:strncmp

功能:串比较

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

举例:#include#includeintmain(void){char*buf1="aaabbb",*buf2="bbbccc",*buf3="ccc";intptr;ptr=strncmp(buf2,buf1,3);if(ptr>0)printf("buffer2isgreaterthanbuffer1\n");elseprintf("buffer2islessthanbuffer1\n");ptr=strncmp(buf2,buf3,3);if(ptr>0)printf("buffer2isgreaterthanbuffer3\n");elseprintf("buffer2islessthanbuffer3\n");return(0);}函数名:strncmpi

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

用法:intstrncmpi(char*str1,char*str2,intlen);举例:#include#includeintmain(void){char*buf1="BBBccc",*buf2="bbbccc";intptr;ptr=strncmpi(buf2,buf1,3);if(ptr>0)printf("buffer2isgreaterthanbuffer1\n");if(ptr#includeintmain(void){char*string="abcdefghijklmnopqrstuvwxyz";charletter='x';printf("stringbeforestrnset:%s\n",string);strnset(string,letter,13);printf("stringafterstrnset:%s\n",string);return0;}函数名:strpbrk

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

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

举例:#include#includeintmain(void){char*string1="abcdefghijklmnopqrstuvwxyz";char*string2="onm";char*ptr;ptr=strpbrk(string1,string2);if(ptr)printf("strpbrkfoundfirstcharacter:%c\n",*ptr);elseprintf("strpbrkdidn'tfindcharacterinset\n");return0;}函数名:strrev

功能:串倒转

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

举例:#include#includeintmain(void){char*forward="string";printf("Beforestrrev():%s\n",forward);strrev(forward);printf("Afterstrrev():%s\n",forward);return0;}/*运行结果:Beforestrrev():stringAfterstrrev():gnirts*/函数名:strstr

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

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

举例:#include#includeintmain(void){char*str1="BorlandInternational",*str2="nation",*ptr;ptr=strstr(str1,str2);printf("Thesubstringis:%s\n",ptr);return0;}函数名:strtod

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

用法:doublestrtod(char*str,char**endptr);

举例:#include#includeintmain(void){charinput[80],*endptr;doublevalue;printf("Enterafloatingpointnumber:");gets(input);value=strtod(input,&endptr);printf("Thestringis%sthenumberis%lf\n",input,value);return0;}函数名:strtol

功能:将串转换为长整数

用法:longstrtol(char*str,char**endptr,intbase);

举例:#include#includeintmain(void){char*string="87654321",*endptr;longlnumber;/*strtolconvertsstringtolonginteger*/lnumber=strtol(string,&endptr,10);printf("string=%slong=%ld\n",string,lnumber);return0;}函数名:strupr

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

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

举例:#include#includeintmain(void){char*string="abcdefghijklmnopqrstuvwxyz",*ptr;/*convertsstringtouppercasecharacters*/ptr=strupr(string);printf("%s\n",ptr);return0;}

相关推荐