作业介绍

一、字符型(char)

1. 核心定义

  • 用于存储单个字符,字符常量需用单引号括起(如'A''5'),区别于双引号括起的字符串。

  • 错误示例:"x"(双引号为字符串)、'xy'(单引号内只能有一个字符)、6.66(数值类型,非字符)。

2. 变量声明与定义

  • 声明:char 变量名;(如char name;

  • 定义:char 变量名 = 初始字符;(如char name = 'A';

3. ASCII码规则

  • 字符以ASCII码(0~127)存储,核心对应关系:

    • 数字0-9:ASCII码48-57

    • 大写字母A-Z:ASCII码65-90

    • 小写字母a-z:ASCII码97-122

  • 常用转换公式:

    • 大写字母转小写:大写字母 + 32(如'A' + 32 = 'a'

    • 小写字母转大写:小写字母 - 32(如'a' - 32 = 'A'

    • 数字转数字字符:数字 + 48(如6 + 48 = '6'

    • 数字字符转数字:数字字符 - 48(如'6' - 48 = 6

4. 类型转换

  • 隐式转换:char与int运算时自动提升为int(如'A' + 32本质是65 + 32

  • 强制转换:(目标类型) 变量/表达式

    • 字符转ASCII码:(int) 'a'(结果为97)

    • ASCII码转字符:(char) 97(结果为'a'

    • 数值类型转换:(int) 1.2(结果为1)

二、字符数组

1. 声明与初始化

  • 声明:char 数组名[元素个数];(如char ch[5];

  • 初始化:char 数组名[长度] = {'字符1', '字符2', ...};(如char ch[5] = {'a', 'b', 'c', 'd', 'e'};),每个元素需带单引号。

2. 元素访问与遍历

  • 下标规则:从0开始,最后一个元素下标为数组长度-1,下标不能为负数或浮点数(避免越界)。

  • 访问方式:数组名[下标](如ch[0]获取第一个元素)。

  • 遍历方式:通过循环逐个访问元素(如for (int i = 0; i < 5; i++) cout << ch[i];)。

3. 输入与输出

  • 输入:循环通过cin >> 数组名[i]逐个录入元素。

  • 输出:循环通过cout << 数组名[i]逐个输出元素。

三、字符串(特殊字符数组)

1. 核心特性

  • 字符串是 '\0' (ASCII码0)结尾的字符数组,'\0'是字符串结束标志,不计入有效长度。

  • 示例:char ch[6] = "Hello"; 实际存储为'H','e','l','l','o','\0',需预留1个字节给'\0'

2. 输入方式

输入场景 方法 注意事项
不带空格的字符串 cin >> 字符数组名; 自动忽略空格、回车,遇空格/回车停止输入
带空格的字符串 cin.getline(数组名, 数组长度); 需包含数组长度(最后一位留给'\0'),如cin.getline(ch,5)最多读4个字符
避免cingetline连用 cin后加getchar(); 吸收cin残留的回车符,避免getline失效

3. 输出方式

  • 直接输出数组名:cout << 字符数组名;(自动识别'\0'并停止输出)。

4. 遍历与长度计算

  • 遍历方式:

    1. 利用'\0'终止:for (int i = 0; s[i] != '\0'; i++)

    2. 先求长度再遍历:int len = strlen(s); for (int i = 0; i < len; i++)

  • 长度计算:

    • 手动计数:循环统计'\0'前的字符数。

    • 函数调用:strlen(字符串名)(需包含<cstring>头文件),返回有效字符数(不含'\0')。

四、字符串处理函数(需包含<cstring>头文件)

函数格式 功能描述 注意事项
strcat(串1, 串2) 将串2连接到串1末尾,返回串1 串1需预留足够空间,无分隔符直接拼接
strcpy(串1, 串2) 将串2复制到串1,覆盖串1原有内容,返回串1 串1空间需足够容纳串2,包含'\0'
strcmp(串1, 串2) 按字典序比较(逐位比ASCII码):
- 串1>串2:返回正整数
- 串1=串2:返回0
- 串1<串2:返回负整数
长度长≠值大,逐位不同时立即返回结果
strlen(串) 计算字符串有效长度(不含'\0' 仅对以'\0'结尾的字符串有效
strlwr(串) 将字符串中所有大写字母转为小写 仅修改字母,不改变其他字符
strupr(串) 将字符串中所有小写字母转为大写

字典序比较规则

  1. 逐位比较字符ASCII码,首次不同即确定大小(如"append" < "apple");

  2. 逐位相同则长度长的字符串更大(如"app" < "apple");

  3. 所有字符相同则相等(如"abc" == "abc")。

五、关键注意事项

  1. 字符串存储:数组长度需比有效字符数多1,预留'\0'位置。

  2. 输入冲突:cincin.getline()连用时,需用getchar()吸收回车符。

  3. 越界问题:字符数组/字符串的下标不能超出范围,避免内存污染。

  4. 函数依赖:字符串处理函数需包含<cstring>头文件,且仅适用于字符数组(非C++string类)。

题目

认领作业后才可以查看作业内容。
状态
正在进行…
题目
9
开始时间
2026-7-1 0:00
截止时间
2036-7-9 23:59
可延期
24 小时