【小理哥哥爱读书第三课】字符(char)、字符串(string)

零基础也能学懂!本文将用显微镜级别的方式拆解C++字符与字符串的每一个细节,拒绝"大概懂",只求"彻底通"!

对了,同样有个小小的要求,点点关注不迷路!
接下来是本期博客的目录,请查收!

目录

零基础也能学懂!本文将用显微镜级别的方式拆解C++字符与字符串的每一个细节,拒绝"大概懂",只求"彻底通"!

一、字符类型(char)深度解析

1. 为什么需要字符类型?

2. char本质:存储数字的盒子

3. 字符输入操作详解

4. 字符运算内部原理

二、字符串(string)完全指南

1. 从C风格字符串到C++的string

2. 字符串定义四大方式

3. 字符串拼接原理

4. 访问字符串内部元素

5. 输入含空格的字符串

6. 常用字符串操作函数

(1) 查找子串:find()

(2) 子串提取:substr()

(3) 替换字符串内容

(4) 字符串大小写转换

三、深入实践:手写字符串功能

1. 自己实现长度函数

2. 实现字符串反转

3. 简易加密算法实现

四、必掌握的实战技巧

1. 字符串与数字转换

2. 字符串分割技巧

3. 字符串处理性能优化

五、综合案例:简易通讯录系统

终极总结:你需要记住的


一、字符类型(char)深度解析

1. 为什么需要字符类型?

计算机本质只懂0和1,为了让人能输入和输出文字,我们用ASCII码表示字符,而char类型就是用来存储这些字符的容器。

代码逐行解析:​

#include <iostream>  // 引入输入输出库
using namespace std; // 使用标准命名空间(避免写std::前缀)

int main() {         // 程序入口函数
    // 声明char类型变量并初始化
    char letter = 'A';   // 单引号用于单个字符
    char number = '9';
    char symbol = '@';
    
    // 输出字符
    cout << "字母: " << letter << endl;  // endl表示换行
    cout << "数字: " << number << endl;
    cout << "符号: " << symbol << endl;
    
    return 0;  // 程序正常结束
}

2. char本质:存储数字的盒子

计算机中一切皆数字,char存储的是字符的ASCII码值(0-255)。看透char的本质:

char c = 'B';  // 看起来存储字符'B'

// 实际存储的是数字66
cout << "字符B的ASCII码: " << (int)c;  // (int)强制转换为整数

// 直接使用ASCII码赋值
char d = 66;   // 等价于 d = 'B'
cout << "ASCII 66对应的字符: " << d;

3. 字符输入操作详解

如何从键盘获取字符:

char input;
cout << "请输入一个字符: ";
cin >> input;  // cin是标准输入流对象

cout << "你输入了: " << input;

注意事项:​

  • 只能读取第一个字符(输入"hello"只会读取'h')
  • 缓冲区问题:如果连续读取,可能会读取到回车符

4. 字符运算内部原理

为什么可以进行字符运算?因为实际运算的是ASCII码值:

char ch = 'C';

// 解密运算过程
ch = ch + 1;  
// 等价操作:
// 1. 读取ch的ASCII码(67)
// 2. 67 + 1 = 68
// 3. 68对应字符'D'
cout << ch; // 输出'D'

// 大小写转换原理
ch = 'f';  // ASCII码102
ch = ch - 32;  // 102 - 32 = 70 → 'F'

二、字符串(string)完全指南

1. 从C风格字符串到C++的string

历史背景:​​ 早期C++沿用C的字符数组表示字符串,存在诸多不便(如手动分配内存)

// C风格字符串(不建议在新项目中使用)
char cstr[10] = "Hello";  // 固定长度数组,容易越界

// C++ string类(推荐使用)
#include <string>  // 必须包含此头文件
string s = "Hello"; // 长度自动管理
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值