✨博客主页:小钱编程成长记
🎈博客专栏:进阶C语言
🎈相关博文:字符串函数(一)、字符串函数(二)
字符函数
- 字符函数
- 1.字符分类函数
- 1.1 iscntrl - 判断是否是控制字符
- 1.2 isspace - 判断是否是空白字符
- 1.3 isdigit - 判断是否是十进制数字0~9
- 1.4 isxdigit - 判断是否是十六进制数字
- 1.5 islower - 判断是否是小写字母
- 1.6 isupper - 判断是否是大写字母
- 1.7 isalph - 判断是否是字母
- 1.8 isalnum - 判断是否是字母或数字
- 1.9 ispunct - 判断是否是标点符号
- 1.10 isgraph - 判断是否是任何图形字符(除了控制字符和空格)
- 1.11 isprint - 判断是否是任何可打印字符
- 2.字符转换函数
- 2.1 tolower - 大写字母转小写字母
- 2. 2 toupper - 小写字母转大写字母
- 总结
字符函数
1. 字符函数分为 字符分类函数和字符转换函数。
2. 函数一次只能访问一个字符。
3. 头文件是ctype.h
1.字符分类函数
函数 | 如果它的参数符合下列条件就返回真 |
---|---|
iscntrl | 任何控制字符 |
isspace | 空白字符:空格‘ ’,换页‘\f’,换行’\n’,回车‘\r’,制表符’\t’或者垂直制表符’\v’ |
isdigit | 十进制数字 0~9 |
isxdigit | 十六进制数字,包括所有十进制数字,小写字母af,大写字母AF |
islower | 小写字母a~z |
isupper | 大写字母A~Z |
isalpha | 字母az或AZ |
isalnum | 字母或者数字,az,AZ,0~9 |
ispunct | 标点符号,任何不属于数字或者字母的图形字符(可打印) |
isgraph | 任何图形字符 |
isprint | 任何可打印字符,包括图形字符和空白字符 |
输出非0,则说明结果为真
1.1 iscntrl - 判断是否是控制字符
具体介绍链接
int iscntrl ( int c );
控制字符是ASCII编码中,不可显示的字符。它们通常用于控制打印机、终端等设备的行为,例如换行、回车、光标移动等。控制字符包括在ASCII码表中ASCII码为0到31和127的字符
#include <stdio.h>
#include <ctype.h>
int main()
{
char ch = '\n'; //控制字符
int i = iscntrl(ch);
printf("%d\n", i);
return 0;
}
1.2 isspace - 判断是否是空白字符
具体介绍链接
int isspace ( int c );
#include <stdio.h>
#include <ctype.h>
int main()
{
char ch = ' '; //空白字符
int i = isspace(ch);
printf("%d\n", i);
return 0;
}
1.3 isdigit - 判断是否是十进制数字0~9
具体介绍链接
int isdigit ( int c );
#include <stdio.h>
#include <ctype.h>
int main()
{
char ch = '3';
int i = isdigit(ch); //判断是否是十进制数字0~9
printf("%d\n", i);
return 0;
}
1.4 isxdigit - 判断是否是十六进制数字
具体介绍链接
int isxdigit ( int c );
#include <stdio.h>
#include <ctype.h>
int main()
{
char ch = 'a';
int i = isxdigit(ch); //判断是否是十进制数字0~9
printf("%d\n", i);
return 0;
}
1.5 islower - 判断是否是小写字母
具体介绍链接
和大写类似
1.6 isupper - 判断是否是大写字母
具体介绍链接
int isupper ( int c );
#include <stdio.h>
#include <ctype.h>
int main()
{
char ch = 'A';
int result = isupper(ch); // 判断ch是否为大写字母
if (result != 0)
{
printf("是大写字母\n");
}
else
{
printf("不是大写字母\n");
}
return 0;
}
1.7 isalph - 判断是否是字母
具体介绍链接
int isalpha ( int c );
#include <stdio.h>
#include <ctype.h>
int main()
{
char ch = 'A';
int result = isalpha(ch); // 判断ch是否为字母
if (result != 0)
{
printf("是字母\n");
}
else
{
printf("不是字母\n");
}
return 0;
}
1.8 isalnum - 判断是否是字母或数字
具体介绍链接
int isalnum ( int c );
#include <stdio.h>
#include <ctype.h>
int main()
{
char ch = 'A';
int result = isalnum(ch); // 判断ch是否为字母或数字
if (result != 0)
{
printf("是字母或数字\n");
}
else
{
printf("不是字母或数字\n");
}
return 0;
}
1.9 ispunct - 判断是否是标点符号
具体介绍链接
int ispunct ( int c );
#include <stdio.h>
#include <ctype.h>
int main()
{
char ch = '.';
int result = ispunct(ch); // 判断ch是否为标点符号
if (result != 0)
{
printf("是标点符号\n");
}
else
{
printf("不是标点符号\n");
}
return 0;
}
1.10 isgraph - 判断是否是任何图形字符(除了控制字符和空格)
具体介绍链接
int isgraph ( int c );
#include <stdio.h>
#include <ctype.h>
int main()
{
char ch = 'A';
int result = isgraph(ch); // 判断ch是否为可打印字符但不包括空格
if (result != 0)
{
printf("是可打印字符(不包括空格)\n");
}
else
{
printf("不是可打印字符或是空格\n");
}
return 0;
}
1.11 isprint - 判断是否是任何可打印字符
具体介绍链接
int isprint ( int c );
#include <stdio.h>
#include <ctype.h>
int main()
{
char ch = 'A';
int result = isprint(ch); // 判断ch是否为可打印字符
if (result != 0)
{
printf("是可打印字符\n");
}
else
{
printf("不是可打印字符\n");
}
return 0;
}
2.字符转换函数
2.1 tolower - 大写字母转小写字母
具体介绍链接
int tolower ( int c );
//C语言规定参数和返回类型是int类型:是因为在字符在内存中存储的是整型(ASCII码),并且char类型小范围数据可以正常传给int类型的大范围数据。
#include <stdio.h>
#include <ctype.h>
int main()
{
char arr1[10] = { 0 };
scanf("%[^\n]s", arr1);//[^\n]的意思是一直读取到\n才停止(不包括\n)
int i = 0;
while (arr1[i++] = toupper(arr1[i]))
{
;
}
printf("%s\n", arr1);
return 0;
}
2. 2 toupper - 小写字母转大写字母
具体介绍链接
int tolower ( int c );
#include <stdio.h>
#include <ctype.h>
int main()
{
char arr2[10] = { 0 };
int i = 0;
//gets(arr2);
int ch = 0;
while ((ch = getchar())!= '\n')//getchar的返回类型是整型
{
arr2[i++] = (char)ch;//(char)不写也行
}
i = 0;
while (arr2[i++] = tolower(arr2[i]))
{
;
}
printf("%s\n", arr2);
return 0;
}
总结
这篇文章我们一起学习了字符函数。
感谢大家的阅读,大家一起进步!如果有错误的地方,可以在评论区指正。
点赞收藏加关注,C语言学习不迷路!