字符测试篇
isalnum
测试字符是否为英文或数字
头文件
#include <ctype.h>
函数原型
int isalnum(int c);
说明:检查参数 c 是否为英文字母或阿拉伯数字,在标准 C 中相当于使用
isalpha(c) || isdigit(c)
做测试。返回值:若参数 c 为字母或数字,则返回
TRUE
,否则返回NULL
。附加说明:此为宏定义,非真正函数。
相关函数: isalpha, isdigit, islower, isupper
示例
/* 找出 str 字符串中为英文字母或数字的字符 */
#include <stdio.h>
#include <ctype.h>
int main()
{
char str[] = "123c@#FDsP[e?";
int i;
for (i=0; str[i]!=0; i++ )
if (isalnum(str[i]))
printf("%c is an alphanumeric character\n", str[i]);
return 0;
}
执行
1 is an alphanumeric character
2 is an alphanumeric character
3 is an alphanumeric character
c is an alphanumeric character
F is an alphanumeric character
D is an alphanumeric character
s is an alphanumeric character
P is an alphanumeric character
e is an alphanumeric character
isalpha
测试字符是否为英文字母
头文件
#include <ctype.h>
函数原型
int isalpha(int c);
说明:检查参数 c 是否为英文字母,在标准 c 中相当于使用
isupper(c) || islower(c)
做测试。返回值:若参数 c 为英文字母,则返回
TRUE
,否则返回NULL
。附加说明:此为宏定义,非真正函数。
相关函数:isalnum, islower, isupper
示例
/* 找出 str 字符串中为英文字母的字符 */
#include <stdio.h>
#include <ctype.h>
int main()
{
char str[] = "123c@#FDsP[e?";
int i;
for (i=0; str[i]!=0; i++)
if(isalpha(str[i]))
printf("%c is an alphanumeric character\n", str[i]);
return 0;
}
执行
c is an alphanumeric character
F is an alphanumeric character
D is an alphanumeric character
s is an alphanumeric character
P is an alphanumeric character
e is an alphanumeric character
isascii
测试字符串是否为 ASCII 码字符
头文件
#include <ctype.h>
函数原型
int isascii(int c);
说明:检查参数 c 是否为 ASCII 码字符,也就是判断 c 的范围是否在 0 到 127 之间。
返回值:若参数 c 为 ASCII 码字符,则返回
TRUE
,否则返回NULL
。附加说明:此为宏定义,非真正函数。
相关函数:iscntrl
示例
/* 判断 int i 是否具有对应的 ASCII 码字符 */
#include <stdio.h>
#include <ctype.h>
int main()
{
int i;
for(i=125; i<130; i++)
if(isascii(i))
printf("%d is an ascii character: %c\n", i, i);
else
printf("%d is not an ascii character\n", i);
return 0;
}
执行
125 is an ascii character:}
126 is an ascii character:~
127 is an ascii character:
128 is not an ascii character
129 is not an ascii character
iscntrl
测试字符是否为 ASCII 码的控制字符
头文件
#include <ctype.h>
函数原型
int iscntrl(int c);
说明:检查参数 c 是否为 ASCII 控制码,也就是判断 c 的范围是否在 0 到 30 之间。
返回值:若参数 c 为 ASCII 控制码,则返回
TRUE
,否则返回NULL
。附加说明:此为宏定义,非真正函数。
相关函数:isascii
isdigit
测试字符是否为阿拉伯数字
头文件
#include <ctype.h>
函数原型
int isdigit(int c);
说明:检查参数 c 是否为阿拉伯数字 0 到 9。
返回值:若参数 c 为阿拉伯数字,则返回
TRUE
,否则返回NULL
。附加说明:此为宏定义,非真正函数。
相关函数:isxdigit
示例
/* 找出str字符串中为阿拉伯数字的字符 */
#include <stdio.h>
#include <ctype.h>
int main()
{
char str[] = "123@#FDsP[e?";
int i;
for(i=0; str[i]!=0; i++)
if(isdigit(str[i]))
printf("%c is an digit character\n", str[i]);
return 0;
}
执行
1 is an digit character
2 is an digit character
3 is an digit character
isgraphis
测试字符是否为可打印字符
头文件
#include <ctype.h>
函数原型
int isgraph(int c);
说明:检查参数 c 是否为可打印字符,若 c 所对应的 ASCII 码可打印,且非空格字符则返回
TRUE
。返回值:若参数 c 为可打印字符,则返回
TRUE
,否则返回NULL
。附加说明:此为宏定义,非真正函数。
相关函数:isprint
示例
/* 判断 str 字符串中哪些为可打印字符 */
#include <stdio.h>
#include <ctype.h>
int main()
{
char str[] = "a5 @;";
int i;
for(i=0; str[i]!=0; i++)
if(isgraph(str[i]))
printf("str[%d] is printable character: %d\n", i, str[i]);
return 0;
}
执行
str[0] is printable character: a
str[1] is printable character: 5
str[3] is printable character: @
str[4] is printable character: ;
islower
测试字符是否为小写字母
头文件
#include <ctype.h>
函数原型
int islower(int c);
说明:检查参数 c 是否为小写英文字母。
返回值:若参数 c 为小写英文字母,则返回
TRUE
,否则返回NULL
。附加说明:此为宏定义,非真正函数。
相关函数:isalpha, isupper
示例
#include <stdio.h>
#include <ctype.h>
int main()
{
char str[] = "123c@#FDsP[e?";
int i;
for(i=0; str[i]!=0; i++)
if(islower(str[i]))
printf("%c is a lower-case character\n", str[i]);
return 0;
}
执行
c is a lower-case character
s is a lower-case character
e is a lower-case character
isprint
测试字符是否为可打印字符
头文件
#include <ctype.h>
函数原型
int isprint(int c);
说明:检查参数 c 是否为可打印字符,若 c 所对应的 ASCII 码可打印,且非空格字符则返回
TRUE
。返回值:若参数 c 为可打印字符,则返回
TRUE
,否则返回NULL
。附加说明:此为宏定义,非真正函数。
相关函数:isgraph
示例
/* 判断 str 字符串中哪些为可打印字符包含空格字符 */
#include <stdio.h>
#include <ctype.h>
int main()
{
char str[] = "a5 @;";
int i;
for(i=0; str[i]!=0; i++)
if(isprint(str[i]))
printf("str[%d] is printable character: %d\n", i, str[i]);
return 0;
}
执行
str[0] is printable character: a
str[1] is printable character: 5
str[2] is printable character:
str[3] is printable character: @
str[4] is printable character: ;
isspace
测试字符是否为空格字符
头文件
#include <ctype.h>
函数原型
int isspace(int c);
说明:检查参数 c 是否为空格字符,也就是判断是否为空格 (’’)、定位字符 (’\t’)、CR (’\r’)、换行 (’\n’)、垂直定位字符 (’\v’) 或翻页 (’\f’) 的情況。
返回值:若参数 c 为空格字符,则返回
TRUE
,否则返回NULL
。附加说明:此为宏定义,非真正函数。
相关函数:isgraph
示例
/* 将字符串 str[] 中内含的空格字符找出,并显示空格字符的 ASCII 码 */
#include <stdio.h>
#include <ctype.h>
int main()
{
char str = "123c @# FD\tsP[e?\n";
int i;
for(i=0; str[i]!=0; i++)
if(isspace(str[i]))
printf("str[%d] is a white-space character: %d\n", i, str[i]);
return 0;
}
执行
str[4] is a white-space character: 32
str[7] is a white-space character: 32
str[10] is a white-space character: 9
str[16] is a white-space character: 10
ispunct
测试字符是否为标点符号或特殊符号
头文件
#include <ctype.h>
函数原型
int ispunct(int c);
说明:检查参数 c 是否为标点符号或特殊符号。返回
TRUE
也就是代表参数 c 为非空格、非数字和非英文字母。返回值:若参数 c 为标点符号或特殊符号,则返回
TRUE
,否则返回NULL
。附加说明:此为宏定义,非真正函数。
相关函数:isspace, isdigit, isalpha
示例
/* 列出字符串 str 中的标点符号或特殊符号 */
#include <stdio.h>
#include <ctype.h>
int main()
{
char str[] = "123c@ #FDsP[e?";
int i;
for(i=0; str[i]!=0; i++)
if(ispunct(str[i]))
printf("%c\n", str[i]);
return 0;
}
执行
@#[?
isupper
测试字符是否为大写英文字母
头文件
#include <ctype.h>
函数原型
int isupper(int c);
说明:检查参数 c 是否为大写英文字母。
返回值:若参数 c 为大写英文字母,则返回
TRUE
,否则返回NULL
。附加说明:此为宏定义,非真正函数。
相关函数:isalpha, islower
示例
/* 找出字符串 str 中为大写英文字母的字符 */
#include <stdio.h>
#include <ctype.h>
int main()
{
char str[] = "123c@#FDsP[e?";
int i;
for(i=0; str[i]!=0; i++)
if(isupper(str[i]))
printf("%c is an uppercase character\n", str[i]);
return 0;
}
执行
F is an uppercase character
D is an uppercase character
P is an uppercase character
isxdigit
测试字符是否为十六进制数字
头文件
#include <ctype.h>
函数原型
int isxdigit(int c);
说明:检查参数 c 是否为十六进制数字,只要 c 为下列其中一个情况则返回
TRUE
。十六进制数字:0123456789ABCDEF。返回值:若参数 c 为十六进制数字,则返回
TRUE
,否则返回NULL
。附加说明:此为宏定义,非真正函数。
相关函数:isalnum, isdigit
示例
/* 找出字符串 str 中为十六进制数字的字符 */
#include <stdio.h>
#include <ctype.h>
int main()
{
char str[] = "123c@#FDsP[e?";
int i;
for(i=0; str[i]!=0; i++)
if(isxdigit(str[i]))
printf("%c is a hexadecimal digits\n", str[i]);
return 0;
}
执行
1 is a hexadecimal digits
2 is a hexadecimal digits
3 is a hexadecimal digits
c is a hexadecimal digits
F is a hexadecimal digits
D is a hexadecimal digits
e is a hexadecimal digits