字符和字符串处理小结

      C程序提供了丰富的字符测试函数,这些函数是头文件“ctype.h”定义的,使用这些函数之前需要包含这个头文件;所谓字符测试,是指对一个字符进行大小写、是否可打印、是否可以显示、是否是数字等方面进行判断。 

 

      现在就这些测试函数作如下小结:(1)数字或字母测试函数int isalnum(int c):检查参数是否为英文字母或阿拉伯数字,若参数c是字母或数字则返回真值,否则返回为假;(2)字母测试函数 int isalpha(int c):测试一个字符是不是英文字母(包括26个大写字母和26个小写字母),参数是英文字母则返回真值,否则返回假;(3)可打印字符测试函数 int isgraph(int c):判断一个字符是否可以在屏幕上显示,或是可以在打印机中打印出这个字符,如果参数是可以打印字符,则返回真值否则返回为假;(4)大小写字母测试函数 int islower(int c) int isupper(int c):分别用于测试字符是不是小写字符和大写字符;(5)数字测试函数 int isxdigit(int c):测试一个字符是不是0--9之间的阿拉伯数字,实则返回真值否则返回为假;(6)符号测试函数 int ispunct(int c):测试一个字符是否为标点符号或特殊符号,是则返回真值否则返回为假;(7)其他测试函数:<1>测试字符是否为ASCII字符 int isascii(int c);<2>测试字符是否为ASCII码的控制字符 int iscntrl(int c);<3>测试一个字符是否为可打印字符函数 int isprint(int c);<4>测试字符是否为空格int isspace(int c)。 

 

       字符串处理函数小结:(1)字符串转换成浮点型函数 double atof(char *ptr):将参数ptr所指字符串转换成一个浮点型数,然后返回,从第一个字符直到字符串结束,如果字符串中有字母或其他符号,函数会去除这个字符和这个字符以后的内容;(2)字符串转换成整型函数 int atoi(char *ptr):将参数ptr所指的字符串转换成一个整型数并返回,从第一个字符直到字符串结束,如果有其他字符,则去除这个字符与这个字符以后的内容;(3)字符串转换成长整型函数 long atol(char *ptr):将参数ptr所指的字符串转换成一个长整型数并返回,字符串前面的0会跳过,字符串前面有字母时会终止转换返回0,数字后面的字符串会省略不计;(4)将浮点型数转换成字符串函数 char *ecvt(double number,int ndigits,int *decpt,int *sign):参数number是一个double型的浮点数,函数需要对这个浮点数进行转换,参数ndigits是指在浮点数中从左向右取的位数,参数decpt是一个整型数的指针,显示浮点数中小数点在第几位,参数sign是一个整型数的指针,代表数值的正与负,正则返回0负则返回1;函数将参数number转换成字符串,并返回一个指向字符串的指针;(5)字母大小写转换函数 int tolower(int c) int toupper(int c):将参数c转换成大写或小写字母,返回值是一个字符;(6)其他转换函数:<1>char *gcvt(double number,size_t ndigits,char *buf):将浮点数转换成字符串;<2>char *fcvt(double number,size_t ndigits,char *buf):将浮点数转换成字符串;<3>double strtod(const char *ptr,char **endptr):将字符串转换成浮点数;<4>long int strtol(const char *ptr,char **endptr,int base):将字符串转换成长整型数;<5>unsigned long int strtoul(const char *ptr,char **endptr,int base):将字符串转换成无符号长整型数;<6>int toascii(int c):将整型数转换成合法的ASCII码字符。

 

        字符串比较函数:(1) 字符串比较函数 int bcmp(const void *s1,const void *s2,int n):参数s1和s2表示需要进行比较的两个字符串,n表示需要比较的两个字符串的前n个字符,相同返回0,否则返回非0值;(2)字符串大小比较函数 int memcmp(const void *s1,const void *s2,size_t n):参数s1和s2表示需要进行比较的两个字符串,n表示要进行比较的前n个字符,相同返回0,否则返回非0值;(3)忽略大小写比较字符串函数 int strncasecmp(const char *s1,const char *s2,size_t n):函数参数与作用与memcmp()是相同的,不同的是比较字母时忽略了字母的大小写差异;(4)字符串比较函数int strcmp(char *s1,char *s2):比较字符串s1和s2是否相同,相同返回0,否则返回非0值;(5)int strncmp(char *s1,char *s2,int n):将字符串s1和s2的前n个字符进行比较,相同则返回0,否则返回非0值。

 

        字符串复制函数:(1)字符串复制函数 void bcopy(const void *src,void *dest,int n):参数src表示要复制字符的字符串,dest表示复制到的字符串,n表示要复制的字符的数目,函数会改变字符串dest的值,没有返回值;(2)void *memccpy(void *dest,const void *src,int c ,size_t n):参数src 和dest分别表示源字符串与目标字符串,c表示要在字符串dest中查找赋值为c的字符,如果查找到这个字符,则返回下一个字符的指针,n表示需要在字符串src中复制的字符的个数;(可以检查字符串中是不是有某一个字符);(3)char *strcpy(char *dest,const char *src):参数dest是复制字符串的目标指针,src是源字符串指针,函数将返回字符串dest的指针;(注意dest要有足够的空间,以免发生一处错误);(4)char *strncpy(char *dest,const char *src,size_t n):参数中dest是目标字符串的指针,src是要复制的源字符串的指针,n是需要复制的字符个数,返回值是字符串dest的头指针。

 

       字符串的清理与填充:(1)字符串清理函数 void bzero(void *s,int n):参数s是一个字符串的头指针,n表示需要在字符串中清理前n个字符;作用是将字符串中的部分字节写为0,即写入NULL值;(2)字符串填充函数 void *memset(void *s,int c,size_t n):参数s是要处理的字符串的头指针,c表示要写如的字符,n表示从字符串第一个字符开始需要填充的字符数;作用是将一个字符串的前n个字符填充为某一个字符,函数没有返回值。

 

        字符串查找:(1)char *index(const char *s,int c) char *rindex(const char *s,int c) :参数s是一个字符串的头指针,c表示需要在字符串s中查找的字符;函数index用来在字符串中找出需要查找字符第一次的出现位置,然后将该子符地址返回,rindex的使用方法与index相似,但作用是找出字符串中最后一次某字符出现的位置,返回值是一个指针,指向找到的这个字符的地址;(2)void *memchr(const coid *S,int c,size_t n):参数s是要查找的字符串,c是要查找的字符,n表示在字符串s中的前n个字符中查找;作用是在一个字符串的前n个字符中查找某一个字符,找到了则返回这个字符的指针,否则返回0;(3)char *strchr(const char *s,int c) char *strrchr(const char *S,int c):参数s是需要查找的字符串头指针,c表示要查找的字符,函数strchr()的作用是在一个字符串中查找某一个字符第一次出现的位置,函数strrchr()的作用是在一个字符串中查找某一个字符最后一次出现的位置,如果找到,则返回这个字符的指针,否则返回0。

 

        字符串连接与分割:(1)字符串连接函数 cahr *strcat(char *dest,const char *src):参数dest和src是两个字符串的头指针;函数会把字符串src的内容添加到字符串dest上;(字符串dest要有足够的空间来存储字符串src的数据,以免发生溢出错误);(2)字符串分割函数 char *strtok(char *s,const char *delim):参数s表示需要分割的字符串,delim表示分割标记的字符串;第一次调用时,strtok在参数s字符串中发现delim的分割字符时,将该字符改为NULL字符,然后返回更改以后的字符串,再次调用时,将参数s设置成NULL,每次调用成功则返回下一个分割后的字符串指针;将字符串分割成多个字符串。

 

        其他字符串函数:(1)size_t strlen(const char *s):参数s表示一个字符串;函数作用是求一个字符串的长度,返回一个表示字符串长度的整型数(返回的是实际长度,不包括‘\0’);(2)允许出现字符查找函数 size_t strspn(const char *s,const char *accept):参数s表示需要查找的字符串,accept表示一个字符串,包含了字符串s中允许出现的字符;函数作用是在字符串s中查找第一次没有在accept字符串中出现的字符,找到则返回表示这个字符位置的数字;(3)不允许出现字符查找函数 size_t strcspn(const char *S,const char *reject):参数s表示需要查找的字符串,reject表示一个字符串;在字符串s中不得出现字符串reject里面的任意一个字符,如果在字符串s中查找到字符串reject里面的任意一个字符,将返回这个字符的位置。

 

        了解这些字符及字符串处理函数对于在程序中要进行某些字符或字符串处理的需要,可以根据情况直接调用相应的函数,不用自己去实现,这样可以方便很多;c提供了很多函数,主要在于我们知道多少,会用多少,如果我们多看书,多了解一些库函数,我们的编程水平也许会更上一层楼。

你可能感兴趣的:(字符串处理)