首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >杨校老师课堂之{字符}数据类型

杨校老师课堂之{字符}数据类型

原创
作者头像
杨校
发布2025-07-03 14:17:04
发布2025-07-03 14:17:04
13600
代码可运行
举报
文章被收录于专栏:C++信息学奥赛C++信息学奥赛
运行总次数:0
代码可运行

一、知识重点

(一)基础语法与程序结构

  1. 程序框架
    • #include <iostream>:引入输入输出流库,支持 cin/cout
    • using namespace std;:避免重复写 std::,简化代码
    • int main():程序入口,逻辑从这里开始执行
    • return 0;:标记程序正常结束
  2. 变量定义与初始化
    • 基本类型声明:char c;(字符)、int a, b;(整数)
    • 直接初始化:char c;(默认值随机,需手动赋值)

(二)数据类型核心知识

  1. 字符类型 char
    • 存储单个字符(如 'a''+''9'),本质是ASCII 码(整数)
    • 输入输出:cin >> c;(读取字符,跳过空白符)、cout << c;(输出字符)
  2. 整数类型 int
    • 存储整数(如 1-5100),范围约 -21 亿~21 亿(依编译器而定)

(三) 输入输出(I/O)操作

  1. 流式输入输出
    • cin >> 变量;:自动识别类型,跳过空白符(空格、换行、制表符)
      • 支持连续读取:cin >> a >> b >> c;(按顺序读入 abc
    • cout << 内容;:按类型输出,支持拼接(如 cout << a + b;
  2. 字符与整数的隐式转换
    • 字符本质是 ASCII 码(整数),可直接参与运算:cpp运行 char c = 'A'; cout << c + 32; // 输出 97(即 'a' 的ASCII码)

(四) 逻辑控制(条件判断)

  1. if-else 分支
    • 语法:if (条件) { 语句 } else { 语句 }
    • 条件表达式:
      • 关系运算(>=<===):判断字符范围(如 c >= 'a' && c <= 'z'
      • 等值判断(==):区分运算符(如 c == '+'c == '/'
  2. 多分支处理
    • 嵌套 if-else:处理复杂条件(如先判断运算符,再判断除数是否为 0)
    • 提前 return:满足条件时直接结束程序,避免冗余判断

(五) 字符处理核心技巧

  1. 字符范围判断
    • 小写字母:c >= 'a' && c <= 'z' 97~122
    • 数字字符:c >= '0' && c <= '9' 48~57
    • 大写字母:c >= 'A' && c <= 'Z' 65~90
  2. 大小写转换
    • 大写转小写:c + 32(如 'A' + 32 = 'a'
    • 小写转大写:c - 32(如 'a' - 32 = 'A'
    • 注意:需先判断字符是否为字母,再转换

(六) 常见场景与边界处理

  1. 计算器程序
    • 运算符判断:覆盖 +-*/ 四种情况
    • 边界处理:
      • 除数为 0(b == 0 且运算符是 /)→ 输出 Divided by zero!
      • 无效运算符 → 输出 Invalid operator!
  2. 字符分类判断
    • 明确区分字符类型(字母、数字、符号),通过 ASCII 范围快速判断

(七) 知识关联与进阶方向

知识点

可扩展学习

实际应用场景

字符与 ASCII

扩展 ASCII 表、 Unicode 字符

文本处理、密码学(简单替换加密)

条件判断

三目运算符(a ? b : c)、switch

菜单系统、权限控制

输入输出

文件读写(fstream)、格式化输出

日志记录、数据持久化

数据类型

浮点型(float/double)、布尔型

科学计算、逻辑判断

这些代码覆盖了 C++ 基础语法的核心骨架(输入输出、变量、条件判断),以及字符处理的典型场景(分类、转换、运算)。掌握后可进一步学习:

  • 循环结构(for/while)实现批量处理
  • 函数封装(提取重复逻辑)
  • 数组 / 字符串的复杂操作


二、专项训练

1. 字符的输入输出

题目描述

除了整数、浮点数以外,C++语言中还有其他的基本数据类型,例如字符类型 (用于保存一个字符’A’, ’B’, ’?’ 等)char。输入一个字符并原样输出它。

输入描述

输入一行,一个字符。

输出描述

输出一行,一个字符。

样例

输入

X

输出

X

代码语言:javascript
代码运行次数:0
运行
复制
#include <iostream>

using namespace std;

int main(){
    // 1. 定义变量
   char c;
    // 2. 输入变量
   cin >> c;
   // 3. 输出变量
   cout << c;

  return 0;
}

平安的计算器

题目描述

陈平安想制作一个只支持整数的加、减、乘、除运算简单的计算器。同时运算结果也不会超过int表示的范围。

输入描述

一行,共三个参数。前两个为整数,最后一个为运算符(+、-、*、/)

输出描述

输出只有一行,一个整数,为运算结果。然而:

  1. 如果出现除数为0的情况,则输出:Divided by zero!
  2. 如果出现无效的操作符(即不为 +, -, *, / 之一),则输出:Invalid operator!

样例

输入

1 2 +

输出

3

代码语言:javascript
代码运行次数:0
运行
复制
#include <iostream>

using namespace std;

int main(){
    // 1. 定义变量
   char c;
   int a,b;
    // 2. 输入变量
   cin >> a>>b>>c;
   if(c=='+'){
       cout << a + b;
       return 0;
   }else  if(c=='-'){
       cout << a - b;
       return 0;
   }else if(c=='*'){
       cout << a * b;
       return 0;
   }else if(c=='/'){
      if(b!=0){
          cout << a / b;
          return 0; 
      }else{
          cout <<"Divided by zero!";
          return 0;
      }
   }
   // 3. 输出变量
    cout <<"Invalid operator!";
  return 0;
}

2. 小写字母判断

题目描述

输一个字符,判断是不是小写英文字母,是的话输出YES,否则输出NO。

输入描述

输入一行,一个字符,是我们需要判断的字符。

输出描述

如果是小写英文字母,则输出YES,否则输出NO。

样例输入

z

样例输出

YES

代码语言:javascript
代码运行次数:0
运行
复制
#include <iostream>

using namespace std;

int main(){
    // 1. 定义变量
   char c;
   int a,b;
    // 2. 输入变量
   cin >> c;
//   if(c - 'a' >= 0 && c - 'z' <= 0 ){
   if(c >='a'  && c <= 'z' ){
       cout << "YES";
   }else{
       cout << "NO";
   }
  return 0;
}

3. 数字字符判断

题目描述

输一个字符,判断是不是数字字符,是的话输出yes,否则输出no。

输入描述

输入一行,一个字符,是我们需要判断的字符。

输出描述

如果是数字字符,则输出yes,否则输出no。

样例输入

6

样例输出

YES

代码语言:javascript
代码运行次数:0
运行
复制
#include <iostream>

using namespace std;

int main(){
    // 1. 定义变量
   char c;
  
    // 2. 输入变量
   cin >> c;
   
   if(c >='0'  && c <= '9' ){
       cout << "yes";
   }else{
       cout << "no";
   }
   // 3. 输出变量

  return 0;
}
  1. 大小写转换

题目描述

从键盘上输入一个字母,如果为大写字母则输出与其对应的小写字母,如果为小写字母则输出大写字母。

输入描述

输入一行,一个字母

输出描述

输出只有一行,一个转换后的字母

样例

输入

a

输出

A

代码语言:javascript
代码运行次数:0
运行
复制
#include <iostream>

using namespace std;

int main(){
    // 1. 定义变量
   char c;
  
    // 2. 输入变量
   cin >> c;
    int a ;
   if(c >='a'  && c <= 'z' ){
       a = c;
       a =  a - 32;
       c = (char)a;
       cout << c;
   }else{
       a = c;
       a =  a + 32;
       c = (char)a;
       cout << c;
   }
   // 3. 输出变量

  return 0;
}

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、知识重点
    • (一)基础语法与程序结构
    • (二)数据类型核心知识
    • (三) 输入输出(I/O)操作
    • (四) 逻辑控制(条件判断)
    • (五) 字符处理核心技巧
    • (六) 常见场景与边界处理
    • (七) 知识关联与进阶方向
  • 二、专项训练
    • 1. 字符的输入输出
    • 题目描述
    • 输入描述
    • 输出描述
    • 样例
    • 平安的计算器
    • 题目描述
    • 输入描述
    • 输出描述
    • 样例
    • 2. 小写字母判断
      • 题目描述
      • 输入描述
      • 输出描述
      • 样例输入
      • 样例输出
    • 3. 数字字符判断
      • 题目描述
      • 输入描述
      • 输出描述
      • 样例输入
      • 样例输出
      • 题目描述
      • 输入描述
      • 输出描述
      • 样例
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档