C isupper() 语法
isupper() 是 C 语言 <ctype.h> 标准库的一个函数,用于判断字符是否为大写字母。
语法:
isupper(c)说明:
isupper() 函数接收单个参数。
c (int):是一个字符。虽然是 int 类型,但它的值必须能够表示为一个 unsigned char,或者等于 EOF。
isupper() 函数返回一个 int 类型的值,以表示判断结果。
- 如果参数 c 是一个在当前区域设置下被归类为大写字母的字符,则返回一个非零值(表示 “真”)。
- 否则,返回 0(表示 “假”)。
提示:
- isupper 指的是 “is upper”。
- isupper() 用于判断字符是否为大写字母,而 islower() 用于判断字符是否为小写字母。
C isupper() 摘要
| 使用频率 | 高 |
|---|---|
| 修改字符串 | 否 |
| 官方文档 | 查看 |
C isupper() 示例
接下来,我们通过几个简单的例子来讲解一下 C isupper() 函数是如何使用的。
示例 1:isupper() 判断字母
#include <stdio.h>
#include <ctype.h>
int main(void)
{
char char1 = 'L';
char char2 = 'y';
char char3 = 'E';
if (isupper(char1)) {
printf("'%c' 是大写字母。\n", char1);
} else {
printf("'%c' 不是大写字母。\n", char1);
}
if (isupper(char2)) {
printf("'%c' 是大写字母。\n", char2);
} else {
printf("'%c' 不是大写字母。\n", char2);
}
if (isupper(char3)) {
printf("'%c' 是大写字母。\n", char3);
} else {
printf("'%c' 不是大写字母。\n", char3);
}
return 0;
}运行结果如下。
'L' 是大写字母。
'y' 不是大写字母。
'E' 是大写字母。分析:
如果参数是大写字母字符,那么 isupper() 会返回一个非零值(表示 “真”)。
示例 2:isupper() 判断非字母字符
#include <stdio.h>
#include <ctype.h>
int main(void)
{
char ch1 = '6';
char ch2 = '#';
char ch3 = ' ';
if (isupper(ch1)) {
printf("'%c' 是大写字母。\n", ch1);
} else {
printf("'%c' 不是大写字母。\n", ch1);
}
if (isupper(ch2)) {
printf("'%c' 是大写字母。\n", ch2);
} else {
printf("'%c' 不是大写字母。\n", ch2);
}
if (isupper(ch3)) {
printf("'%c' 是大写字母。\n", ch3);
} else {
printf("'%c' 不是大写字母。\n", ch3);
}
return 0;
}运行结果如下。
'6' 不是大写字母。
'#' 不是大写字母。
' ' 不是大写字母。分析:
如果参数是小写字母、数字、标点符号和空格等非大写字母字符,那么 isupper() 会返回 0(表示 “假”)。
示例 3:isupper() 处理 EOF
#include <stdio.h>
#include <ctype.h>
int main(void)
{
int result;
result = isupper(EOF);
printf("%d\n", result);
return 0;
}运行结果如下。
0分析:
如果参数是 EOF,那么 isupper() 会返回 0。
深入了解 isupper()
isupper() 函数的行为会受到当前区域设置 (locale) 的影响。在默认的 "C" 区域设置下,它只会将 'A' ~ 'Z' 识别为大写字母。 在其他区域设置下,它可能会根据该区域设置的定义将其他字符(如带重音的大写字母)也视为大写字母。
需要注意的是,虽然 isupper() 的参数 c 写的是 int 类型,但我们必须传入一个字符(比如 'a'、'B' 等),或者输入特殊的 EOF 值(常用于文件结束判断)。如果传入一个负数(除了 EOF),则可能会导致未定义行为。
