返回 课程
信奥AC之路-2级
0% 完成
0/0 步骤
-
第一课:字符5 主题|小节
-
第二课 嵌套循环与矩形图案(一)4 主题|小节
-
第三课 嵌套循环与矩形图案(二)3 主题|小节
-
第四课:矩形三5 主题|小节
-
第五课:字符矩形7 主题|小节
-
第六课:直角三角形6 主题|小节
-
第七课:倒三角形7 主题|小节
-
第八课:字符三角形8 主题|小节
-
第九课:字符倒三角形7 主题|小节
-
第十课:平行四边形6 主题|小节
-
第十一课:字符直角三角形5 主题|小节
-
第十二课:左斜三角形6 主题|小节
-
第十三课:等腰三角形6 主题|小节
-
第十四课:倒置等腰三角形7 主题|小节
-
第十五课:上下对称图形4 主题|小节
-
第十六课:复杂对称图形5 主题|小节
-
第十七课:左右对称图形5 主题|小节
-
第十八课:空心图形5 主题|小节
-
第十九课:空心图形3 主题|小节
-
第二十课:嵌套应用4 主题|小节
-
第二十一课:嵌套应用二4 主题|小节
-
第二十二课:嵌套应用三3 主题|小节
-
第二十三课:嵌套应用四3 主题|小节
课 进展
0% 完成
“在程序中,我们经常需要判断一个字符的类型,”我继续解释道,”比如判断它是数字、小写字母还是大写字母。由于字符在本质上是数字,我们可以使用比较运算符来进行这些判断。”
1.2.1 判断字符类型
题目描述:输入一个字符,判断它是数字字符、小写字母还是大写字母。
样例输入:
a
样例输出:
字母字符
小写字母
代码实现:
#include <iostream> // 包含输入输出流库
using namespace std;
int main() {
char a; // 定义一个字符变量a
cin >> a; // 从用户输入读取一个字符
// 判断是否为数字字符('0'到'9'的ASCII码是48到57)
if(a >= '0' && a <= '9') {
cout << "数字字符"; // 如果是数字字符,则输出提示
}
// 判断是否为字母字符(包括大小写字母)
else if((a >= 'a' && a <= 'z') || (a >= 'A' && a <= 'Z')) {
cout << "字母字符" << endl; // 如果是字母字符,输出提示
// 进一步判断是小写字母还是大写字母
if(a >= 'a' && a <= 'z') {
cout << "小写字母" << endl; // 小写字母'a'到'z'的ASCII码是97到122
} else {
cout << "大写字母"; // 大写字母'A'到'Z'的ASCII码是65到90
}
}
// 注意:如果输入的既不是数字也不是字母,程序不会输出任何内容
return 0; // 程序正常结束
}
思考:
- 使用比较运算符
>=和<=判断字符是否在特定范围内 - 字符可以直接与字符进行比较,如
a >= '0' - 使用逻辑运算符
&&和||组合多个条件
1.2.2 大小写字母转换
题目描述:输入一个字母,如果是大写字母则转换为小写,如果是小写字母则转换为大写。
样例输入:
a
样例输出:
A
代码实现:
#include <iostream> // 包含输入输出流库
#include <cctype> // 包含字符处理函数,如isupper(), islower()等
using namespace std;
int main() {
char ch; // 定义一个字符变量ch
cin >> ch; // 从用户输入读取一个字符
// 判断是否为大写字母(使用cctype库函数isupper)
if(isupper(ch)) {
// 大写转小写:加上大小写字母ASCII差值('a'-'A'=32)
cout << char(ch + ('a' - 'A')); // 转为小写并输出
// 也可以使用库函数:cout << (char)tolower(ch);
}
// 判断是否为小写字母(使用cctype库函数islower)
else if(islower(ch)) {
// 小写转大写:减去大小写字母ASCII差值('a'-'A'=32)
cout << char(ch - ('a' - 'A')); // 转为大写并输出
// 也可以使用库函数:cout << (char)toupper(ch);
}
// 注意:如果输入的不是字母,程序不会输出任何内容
return 0; // 程序正常结束
}
思考:
- 大写字母和小写字母的ASCII码差值是固定的:’a’ – ‘A’ = 32
- 可以通过加减这个差值来实现大小写转换
- 使用
isupper()和islower()函数可以简化判断 - 将计算结果转回字符类型输出