Strtok(char* , char):将字符串以分隔符的方式分割,返回第一个分割所得地址,第一次分割时需加上第一个参数,以后就不需要再加第一个参数了,直接以NULL代替即可,它的每一次调用都返回分割的第Ni个的地址;
Strcmp(char* , char*):比较大小,对大小写敏感;
Strcasecmp(char* , char*):比较大小,对大小写不敏感;
Strncasecmp(char* , char* ,int ): 比较大小,对大小写不敏感,另外课指定对前n个字符进行大小比较;
Strcoll(char* , char*);比较大小,对大小写敏感;另外,会根据LO_LOCAL环境变量的值进行规律性的大小比较;
Strcpy(char* , char*):复制函数,将第二个参数的值复制到第一个里面,会把第二个参数最后的“\0”页复制过去;
Strncpy(char* , char*, int): 复制函数,将第二个参数的前n个值复制到第一个里面,不会把第二个参数最后的“\0”页复制过去,若需全部复制,应指定n等于strlen(第二个参数)+1;
Strcat(char* , char*):拼接函数,将第二个参数拼接到第一个参数后面,自动补0;
Strncat(char* , char*, int): 拼接函数,将第二个参数的钱n个拼接到第一个参数后面,自动补0;
Strdup(char*):首先会调用malloc函数分配和参数大小一样的空间,然后将数据复制过去,租后返回所得空间的地址;
Strchr(char* , char):返回第二个参数在第一个参数中首次出现的位置;
Strrchr(char* , char): 返回第二个参数在第一个参数中最后一次出现的位置;
Strpbrk(char* , char*):返回第二个参数和第一个参数第一次出现相同字符的位置;
Strstr(char* , char*):字符串匹配,返回第二个参数第一次出现在第一个参数中的位置;
Strlen(char*):返回字符串的长度;
Strspn(char* , char*);返回第一个参数从头开始连续在第二个参数中出现的字符个数;
Strcspn(char* , char*):返回第一个参数中从头开始连续在第二个参数中没有出现的字符个数;
以上函数的头文件都为<string.h>,但是如下三个的头文件是<ctype.h>
Toupper(char):将参数转换为大写;
Tolower(char):将参数转换为小写;
Toascii(char)将参数转换为ascii码;
#include "stdio.h" #include "stdlib.h" #include "string.h" #include "ctype.h" void cmp() { printf("---------------------------------字符串比较函数---------------------------------\n"); char a[] = "BSLbaishilei" ; char b[] = "bslbaishilei" ; char c[] = "bslbaia989ds" ; printf("用于测试的变量 a = %s\n",a); printf("用于测试的变量 b = %s\n",b); printf("用于测试的变量 c = %s\n",c); if(strcmp(a,b)==0) printf("strcmp()执行结果: a[] -> %s 等于 b[] -> %s\n",a,b); else if(strcmp(a,b)>0) printf("strcmp()执行结果: a[] -> %s 大于 b[] -> %s\n",a,b); else if(strcmp(a,b)<0) printf("strcmp()执行结果: a[] -> %s 小于 b[] -> %s\n",a,b); //-------------------------------------------------------------------------- if(strcasecmp(a,b)==0) printf("strcasecmp()执行结果: a[] -> %s 等于 b[] -> %s\n",a,b); else if(strcasecmp(a,b)>0) printf("strcasecmp()执行结果: a[] -> %s 大于 b[] -> %s\n",a,b); else if(strcasecmp(a,b)<0) printf("strcasecmp()执行结果: a[] -> %s 小于 b[] -> %s\n",a,b); //-------------------------------------------------------------------------- if(strncasecmp(a,c,7)==0) printf("strncasecmp()执行结果: a[] -> %s 等于 c[] -> %s\n",a,c); else if(strncasecmp(a,c,7)>0) printf("strncasecmp()执行结果: a[] -> %s 大于 c[] -> %s\n",a,c); else if(strncasecmp(a,c,7)<0) printf("strncasecmp()执行结果: a[] -> %s 小于 c[] -> %s\n",a,c); //-------------------------------------------------------------------------- if(strcoll(a,c)==0) printf("strcoll()执行结果: a[] -> %s 等于 c[] -> %s\n",a,c); else if(strcoll(a,c)>0) printf("strcoll()执行结果: a[] -> %s 大于 c[] -> %s\n",a,c); else if(strcoll(a,c)<0) printf("strcoll()执行结果: a[] -> %s 小于 c[] -> %s\n",a,c); }
void change() { printf("---------------------------------字符串转换函数---------------------------------"); char a[] = "abcDEF012" ; printf("用于测试的变量 a = %s\n",a); printf("\ntoupper()执行结果:"); for(int i = 0 ; i < strlen(a) ; i ++) printf("%c",toupper(a[i])); //-------------------------------------------------------------------------- printf("\ntolower()执行结果:"); for(int i = 0 ; i < strlen(a) ; i ++) printf("%c",tolower(a[i])); //-------------------------------------------------------------------------- printf("\ntoascii()执行结果:"); for(int i = 0 ; i < strlen(a) ; i ++) printf("%c->%d ",a[i],toascii(a[i])); printf("\n"); }
void cpy() { printf("---------------------------------字符串转换函数---------------------------------\n"); char a[]="bsl" ; char b[]="baishilei" ; char c[30] ; char *p ; printf("用于测试的变量 a = %s\n",a); printf("用于测试的变量 b = %s\n",b); printf("用于测试的变量 c = %s\n",c); strcpy(c,a); printf("strcpy(c,a)执行结果:c = %s\n",c); strcat(c,b); printf("strcat(c,b)执行结果:c = %s\n",c); //-------------------------------------------------------------------------- strncpy(c,b,3); printf("strncpy(c,b,3)执行结果:c = %s\n",c); strncat(c,a,3); printf("strncat(c,b,3)执行结果:c = %s\n",c); //-------------------------------------------------------------------------- strncpy(c,a,4); printf("strncpy(c,a,4)执行结果:c = %s\n",c); //-------------------------------------------------------------------------- p = strdup(a); printf("strdup(a)执行结果:*p = %s\n",p); }
void knief() { printf("---------------------------------字符串分割函数---------------------------------\n"); char a[] = "a-b-c-d ; d-e ,,, ! f-g ---edf --- " ; char *p ; printf("strtok()执行之前:s = %s\n",a); printf("strtok()执行之后:s = %s",strtok(a,"-")); while( p = strtok(NULL,"-")) printf("%s",p); printf("\n"); }
void spn() { printf("---------------------------------字符串计算函数---------------------------------\n"); char a[] = "bslj012kh" ; char b[] = "0123456789baslk" ; char c[] = "jh012mn" ; printf("用于测试的变量 a = %s\n",a); printf("用于测试的变量 b = %s\n",b); printf("用于测试的变量 c = %s\n",c); printf("strspn(a,b)的执行结果:%d\n",strspn(a,b)); printf("strcspn(c,b)的执行结果:%d\n",strcspn(c,b)); }
void find() { printf("---------------------------------字符串查找函数---------------------------------\n"); char a[] = "bslbaishilei" ; char b[] = "hahaha" ; char c[] = "shi"; printf("用于测试的变量 a = %s\n",a); printf("用于测试的变量 b = %s\n",b); printf("用于测试的变量 c = %s\n",c); printf("strchr(a,'i')执行结果:%s\n",strchr(a,'i')); printf("strrchr(a,'i')执行结果:%s\n",strrchr(a,'i')); printf("strpbrk(a,b)执行结果:%s\n",strpbrk(a,b)); printf("strstr(a,c)执行结果:%s\n",strstr(a,c)); }
int main(int argc,char* argv) { cmp(); change(); cpy(); knief(); spn(); find(); printf("-------------------------------------Ending-------------------------------------\n"); system("pause"); return 0 ; } |