字符串就是一串零个或多个字符,并且以一个位模式为全0的NUL字节结尾。NUL字节是字符串的终止符,但它本身并不是字符串的一部分,所以字符串的长度并不包括NUL字符。
复制字符串
char *strcpy(char *dst,char const *src);
这个函数把参数src字符串复制到dst参数。如果参数src和dst在内存中出现重叠,其结果是来定义的。由于dst参数将进行修改,所以它必须是个字符数组或者一个指向动态分配内存的数组的指针,不能使用字符串常量。
连接字符串
char *strcat(char *dst, char const *src);
strcat函数要求dst参数原先已经包含了一个字符串(可以是空字符串)。它找到这个字符串的末尾,并把src字符串的一份拷贝添加到这个位置。如果src和dst的位置发生重叠,其结果是为定义的。
字符串比较
int strcmp(char const *s1, char const *s2);
如果s1小于s2,strcmp函数返回一个小于零的值,如果s1大于s2,函数返回一个大于零的值,如果两个字符串相等,函数就返回0.
字符串查找函数
char *strchr(char const *str, int ch);
char *strrchr(char const *str, int ch);
注意它们的第2个参数是一个整型值,但是,它包含了一个字符串。strchr在字符串str中查找字符ch第1次出现的位置,找到后函数返回一个指向该位置的指针,如果该字符并存在于字符串中,函数就返回一个NULL指针。strrchr的功能和strchr基本一致,只是它所返回的是一个指向字符串中该字符最后一次出现的位置。
查找一个子串
char *strstr(char const *s1, char const *s2);
这个函数在s1中查找整个s2第一次出现的起始位置,并返回一个指向该位置的指针。如果s2并没有完整地出现在s1的任何地方,函数将返回一个nULL指针。如果第2个空字符串,函数就返回s1.
字符分类
函数 | 如果它的参数符合下列条件就返回真 |
iscntrl | 任何控制字符 |
isspace | 空白字符:空格’ ’,换页’\f’,回车’\r’,制表符’\t’,垂直制表符’\v’ |
isdigit | 十进制数字0~9 |
isxdigit | 十六进制数字,包括所有十进制数字,小写字母a~f,大写字母A~F |
islower | 小写字母a~z |
isupper | 大写字母A~Z |
isalpha | 字母a~z,A~Z |
isalnum | 字母或数字,a~z,A~Z |
ispunct | 标点符号,任何不属于数字或字母的图形字符 |
isgrap | 任何图形字符 |
isprint | 任何可打印字符,包括图形字符和空白字符 |