字符串处理函数大全
做题的时候越来越感觉到c语言的库函数的强大性,看别人的代码,总是觉得很经典,看来以后自己贴代码的时候一定要将代码优化以后才能贴出来,要不然就显得很损了
View Code
//强悍的字符串库函数哇,太方便了 #include<stdio.h> #include<string.h> #include<ctype.h> char st1[100], st2[100], st[100] //就下面这一个简单的小程序,就直接把一句很长的字符串分割成一个个的单词了,很棒,很实用哦 int main() { gets(st); //strtok,包含在string.h中的库函数 char *p = strtok(st," "); puts(p); while((p = strtok(NULL," ")) != NULL) puts(p); return 0; } //查找子串的函数 int ...() { //查找字符 ①strchr 原型:extern char *strchr(char *s,char c); 用法:#include <string.h> 功能:查找字符串s中首次出现字符c的位置 说明:返回首次出现c的位置的指针,如果s中不存在c则返回NULL。 //②查找字符串s2,中的所有字符,在s1中最先出现的那个字符 原型:extern int strcspn(char *s1,char *s2); 用法:#include <string.h> 功能:在字符串s1中搜寻s2中所出现的字符。 说明:返回第一个出现的字符在s1中的下标值,亦即在s1中出现而s2中没有出现的子串的长度。 举例: #include <stdio.h> #include <string.h> main() { char *s="Golden Global View"; char *r="new"; int n; n=strcspn(s,r); printf("The first char both in s1 and s2 is: %c",s[n]); return 0; } //查找字串 ③strstr 原型:extern char *strstr(char *haystack, char *needle); 用法:#include <string.h> 功能:从字符串haystack中寻找needle第一次出现的位置(不比较结束符NULL)。 说明:返回指向第一次出现needle位置的指针,如果没找到则返回NULL。 } //字符串比较函数 int ...() { //区分大小写比较两个字符串 原型:extern int strcmp(char *s1,char * s2); 用法:#include <string.h> 功能:比较字符串s1和s2。 说明: 当s1<s2时,返回值<0 当s1=s2时,返回值=0 当s1>s2时,返回值>0 //不区分大小写比较字符串 ①strcmpi 原型:extern int strnicmp(char *s1,char * s2,int n); 用法:#include <string.h> 功能:比较字符串s1和s2的前n个字符但不区分大小写。 说明:strncmpi是到strnicmp的宏定义 当s1<s2时,返回值<0 当s1=s2时,返回值=0 当s1>s2时,返回值>0 ②stricmp 原型:extern int stricmp(char *s1,char * s2); 用法:#include <string.h> 功能:比较字符串s1和s2,但不区分字母的大小写。 说明:strcmpi是到stricmp的宏定义,实际未提供此函数。 当s1<s2时,返回值<0 当s1=s2时,返回值=0 当s1>s2时,返回值>0 //比较两个字符串的部分字符 ①strncmp 原型:extern int strcmp(char *s1,char * s2,int n); 用法:#include <string.h> 功能:比较字符串s1和s2的前n个字符。 说明: 当s1<s2时,返回值<0 当s1=s2时,返回值=0 当s1>s2时,返回值>0 //另外的stricmp以及strcmpi的用法类似strcmp strcasecmp(st1,st2);//同为不区分大小写比较两个字符串的函数,不过这个使用在code blocks编辑器上,在vc上是不能被识别的,uva上面也是要调用这个函数的,不然会出现编辑错误 } //字符串的复制 int ...() { ①strcpy 原型:extern char *strcpy(char *dest,char *src); 用法:#include <string.h> 功能:把src所指由NULL结束的字符串复制到dest所指的数组中。 说明:src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。 返回指向dest的指针。 ②strncpy 原型:extern char *strncpy(char *dest, char *src, int n); 用法:#include <string.h> 功能:把src所指由NULL结束的字符串的前n个字节复制到dest所指的数组中。 说明: 如果src的前n个字节不含NULL字符,则结果不会以NULL字符结束。 如果src的长度小于n个字节,则以NULL填充dest直到复制完n个字节。 src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。 返回指向dest的指针。 //很方便的复制字符串到另一个字符串当中参照线面函数 #include<stdio.h> #include <string.h> main() { char *s="Golden Global View"; char *d; d=strdup(s); printf("%s\n",d); return 0; } //这样就很简单的把字符串*s的字符复制到另一个地址里,这个地址的头指针就是d } //字符串的连接函数 int ...() { ①strcat 原型:extern char *strcat(char *dest,char *src); 用法:#include <string.h> 功能:把src所指字符串添加到dest结尾处(覆盖dest结尾处的'\0')并添加'\0'。 说明:src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。 返回指向dest的指针。 ②strncat 原型:extern char *strncat(char *dest,char *src,int n); 用法:#include <string.h> 功能:把src所指字符串的前n个字符添加到dest结尾处(覆盖dest结尾处的'\0')并添加'\0'。 说明:src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。 返回指向dest的指针。 }