处理字符有着许多的字符函数供我们使用,熟悉这些字符函数可以帮助我们快速解决一些小问题。
int isdigit(int c);
头文件
点击转到cpluscplus.com官网 - isdigit
如果
c
是一个十进制数字,返回非0,否则返回0;
十进制数字可以是:0 1 2 3 4 5 6 7 8 9
传入的是字符
#include
#include
int main() {
char c = 0;
scanf("%c", &c);
if (isdigit(c)) {
printf("是十进制数字\n");
}
else {
printf("不是十进制数字\n");
}
return 0;
}
传入的是整数
#include
#include
int main() {
int c = 0;
scanf("%d", &c);
if (isdigit(c)) {
printf("是十进制数字\n");
}
else {
printf("不是十进制数字\n");
}
return 0;
}
int isxdigit(int c);
头文件
点击转到cpluscplus.com官网 - isxdigit
如果是16进制数字,返回非0,否则返回0;
16进制数可以是:0 1 2 3 4 5 6 7 8 9 a b c de f a b c de f
传入函数的应是十进制数字对应的字符,而不是真的十进制数字。
#include
#include
int main() {
char c = 0;
scanf("%c", &c);
if (isxdigit(c)) {
printf("是十进制数字\n");
}
else {
printf("不是十进制数字\n");
}
return 0;
}
#include
#include
int main() {
int c = 0;
scanf("%d", &c);
if (isxdigit(c)) {
printf("是十进制数字\n");
}
else {
printf("不是十进制数字\n");
}
return 0;
}
int islower(int c);
头文件
点击转到cpluscplus.com官网 - islower
如果
c
是小写字母,返回非0,否则返回0;
请注意,字母的定义可能取决于所使用的语言环境;在默认的“C”地区,小写字母是以下任何一个:a b c d e f g h i j k l m n o p q r s t u v w x y z。
#include
#include
int main() {
char c = 0;
scanf("%c", &c);
if (islower(c)) {
printf("是小写字母\n");
}
else {
printf("不是小写字母\n");
}
return 0;
}
int isupper(int c);
头文件
点击转到cpluscplus.com官网 - isupper
如果是
c
大写字母,返回非0,否则返回0;
请注意,字母的定义可能取决于所使用的语言环境;在默认的“C”区域设置中,大写字母可以是:A B C D E F G H I J K L M N O P Q R S T U V W X Y Z。
#include
#include
int main() {
char c = 0;
scanf("%c", &c);
if (isupper(c)) {
printf("是大写字母\n");
}
else {
printf("不是大写字母\n");
}
return 0;
}
int isalpha(int c);
头文件
如果
c
是字母,返回非0,否则返回0;
#include
#include
int main() {
char c = 0;
scanf("%c", &c);
if (isalpha(c)) {
printf("是字母\n");
}
else {
printf("不是字母\n");
}
return 0;
}
int tolower(int c);
头文件
如果c是一个大写字母并且有一个小写等价物,则将c转换为其小写等价物,否则返回它本身。
#include
#include
int main() {
char c = 0;
scanf("%c", &c);
c = tolower(c);
printf("%c", c);
return 0;
}
int toupper(int c);
头文件
如果c是一个小写字母且有一个大写等价物,则将c转换为其大写等价物,否则返回它本身。
#include
#include
int main() {
char c = 0;
scanf("%c", &c);
c = toupper(c);
printf("%c", c);
return 0;
}
int isalnum(int c);
头文件
如果
c
是字母或十进制数字,返回非0,否则返回0;
#include
#include
int main() {
char c = 0;
scanf("%c", &c);
if (isalnum(c)) {
printf("是字母或十进制数字\n");
}
else {
printf("不是字母且不是十进制数字\n");
}
return 0;
}
int iscntrl(int c);
头文件
点击转到cpluscplus.com官网 - iscntrl
参数
int c
是整型,因为字符是以ASCII码值的形式存放的,属于整型家族。
控制字符(Control Character),出现于特定的信息文本中,表示某一控制功能的字符。是不可打印字符。
如果c
是控制字符就返回非0
,否则返回0
。
#include
#include
int main() {
char c = 0x7f;
//scanf("%c", &c);
if (iscntrl(c)) {
printf("是控制字符\n");
}
else {
printf("不是控制字符\n");
}
return 0;
}
int isprint(int c);
头文件
点击跳转到cpluscplus.com官网 - isprint
任何可打印字符,包括图形字符和空白字符。
如果c
是可打印字符就返回非0
,否则返回0
。
#include
#include
int main() {
char c = 0;
scanf("%c", &c);
if (isprint(c)) {
printf("是可打印字符\n");
}
else {
printf("不是可打印字符\n");
}
return 0;
}
int isgraph(int c);
头文件
判断
c
是否是图形字符,若是就返回非0,否则返回0;
图形字符就是除了除了空格字符' '
外的所有可打印字符。
#include
#include
int main() {
char c = 0;
scanf("%c", &c);
if (isgraph(c)) {
printf("是图形字符\n");
}
else {
printf("不是图形字符\n");
}
return 0;
}
int isspace(int c);
头文件
如果
c
是空白字符,返回非0,否则返回0;
空白字符如上图。
#include
#include
int main() {
char c = 0;
scanf("%c", &c);
if (isspace(c)) {
printf("是空白字符\n");
}
else {
printf("不是空白字符\n");
}
return 0;
}
int ispunct(int c);
头文件
如果
c
是标点符号,返回非0,否则返回0;
标准的"C
"区域设置将标点字符视为非字母数字字符(如isgraph
)的所有图形字符(如isalnum
)。
#include
#include
int main() {
char c = 0;
scanf("%c", &c);
if (ispunct(c)) {
printf("是标点符号\n");
}
else {
printf("不是标点符号\n");
}
return 0;
}
了解常用的字符处理函数有助于筑基!
END