在编程的过程中,我们经常要处理字符和字符串,为了⽅便操作字符和字符串,C语⾔标准库中提供了⼀系列库函数,接下来我就来介绍⼀下这些函数。
C语⾔中有⼀系列的函数是专⻔做字符分类的,也就是⼀个字符是属于什么类型的字符的。
这些函数的使⽤都需要包含⼀个头⽂件是 ctype.h
函数 | 如果他的参数符合下列条件就返回真 |
|---|---|
iscntrl | 任何控制字符 |
isspace | 空白字符:空格'',换页'\f',换行'\n',回车'\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,0~9 |
ispunct | 标点符号,任何不属于数字或者字母的图形字符 |
isgraph | 任何图形字符 |
isprint | 任何可打印字符,包括图形字符和空白字符 |
char * strncat ( char * destination, const char * source, size_t num );
1️⃣将source指向字符串的前num个字符追加到destination指向的字符串末尾,再追加⼀个 \0 字符
2️⃣如果source 指向的字符串的⻓度⼩于num的时候,只会将字符串中到\0 的内容追加到destination指向的字符串末尾。
//strncat函数的模拟实现
#include <stdio.h>
#include <string.h>
int main ()
{
char str1[20];
char str2[20];
strcpy (str1,"To be ");
strcpy (str2,"or not to be");
strncat (str1, str2, 6);
printf("%s\n", str1);
return 0;
}int strncmp ( const char * str1, const char * str2, size_t num );
⽐较str1和str2的前num个字符,如果相等就继续往后⽐较,最多⽐较num个字⺟,如果提前发现不⼀样,就提前结束,⼤的字符所在的字符串⼤于另外⼀个。如果num个字符都相等,就是相等返回0.
返回值:返回一个整数值,用于表示字符串之间的关系:
返回值 | 表示 |
|---|---|
<0 | 在 str1 和 str2 中,第一个不匹配的字符在 str1 中的值小于其在 str2 中的值 |
=0 | 两个字符串的内容相等 |
>0 | 在 str1 和 str2 中,第一个不匹配的字符在 str1 中的值大于其在 str2 中的值 |