2017060201009(蒋程)实验二,删除重复字符串1
需积分: 0 87 浏览量
更新于2022-08-08
收藏 79KB DOCX 举报
实验报告 - 删除字符串中的重复字符
在本实验中,主要目标是编写一个C或C++程序,该程序能够接收一个字符串作为输入,然后删除其中连续重复的非字母和非数字字符。这个任务旨在提升对字符串处理、字符判断以及循环结构的理解和运用。
**实验需求**
1. 用户输入一个字符串,程序会自动处理,删除其中连续重复的、非字母且非数字的字符。
2. 如果输入的字符串长度超过50个字符,程序只处理前50个字符,并输出处理后的字符串。
3. 程序需要检查相邻字符,如果它们相同并且不是字母或数字,就将这一连续重复的部分删除。
**设计过程**
实现这个功能的关键在于遍历字符串并进行条件判断。以下是一个简化版的伪代码来说明这个过程:
```markdown
int i, j, k;
char str1[51], str2[51];
// 获取用户输入
gets(str1);
// 遍历字符串
for (i = 0; k = 0; str1[i] != '\0') {
// 判断相邻字符是否相等,且是否为非字母和非数字
if (str1[i] == str1[i + 1] && !('A' <= str1[i] && str1[i] <= 'z' && '0' <= str1[i] && str1[i] <= '9')) {
// 找到连续重复的部分
j = 1;
while (str1[i] == str1[i + j]) {
j++;
}
// 跳过重复部分
i = i + j - 1;
} else {
// 复制非重复字符到新字符串
str2[k] = str1[i];
i++;
k++;
}
// 结束字符串
str2[k] = '\0';
}
// 输出处理后的字符串
puts(str2);
```
在这个伪代码中,`str1` 存储原始输入字符串,`str2` 存储处理后的字符串。`i` 和 `k` 分别用于跟踪原始和处理后字符串的当前位置。`for` 循环遍历整个字符串,`if` 语句检查相邻字符是否满足删除条件。如果满足,使用 `while` 循环找到连续重复部分的长度,然后跳过这些字符。否则,将当前字符复制到 `str2` 中。用 `'\0'` 终止处理后的字符串,并通过 `puts` 函数输出结果。
**流程图**
虽然没有提供具体的流程图,但可以想象一个流程图会包含以下步骤:
1. 获取用户输入
2. 初始化变量
3. 遍历输入字符串
4. 检查相邻字符
5. 判断字符是否为字母或数字
6. 若非字母或数字且重复,跳过重复部分
7. 否则,将字符复制到结果字符串
8. 继续遍历,直到字符串结束
9. 输出处理后的字符串
**测试**
为了确保程序的正确性,需要进行多组测试,包括但不限于:
1. 空字符串
2. 只含有字母和数字的字符串
3. 只含有非字母和非数字字符的字符串
4. 包含各种字符类型的混合字符串
5. 边界情况,如字符串长度达到50个字符
通过这些测试,可以验证程序是否能正确处理各种输入,并按预期删除重复字符。
总结,这个实验主要涉及C/C++编程中的字符串操作、字符类型判断、循环结构以及基本的输入输出操作。它有助于提高对字符串处理算法的理解,以及如何在实际编程中应用这些概念。

乔木Leo
- 粉丝: 33
最新资源
- 基于计算机视觉的小车目标检测与动态跟踪技术研究 (注:共 16 字,核心动作 “检测”“跟踪” 及对象 “小车” 均保留,通过 “基于计算机视觉”“动态”“技术研究” 补充表述维度,确保原意不变且满足
- 基于船舶的目标检测技术研究项目
- MATLAB中基于YALMIP的微电网优化调度模型:含蓄电池与市场购售电约束的总费用最小化 · 微电网
- 基于船舶目标开展精准识别与检测的技术项目
- 多相流相对渗透率计算中相场与水平集方法的质量守恒策略实现
- 基于DSP28035的60KW三相光伏并网逆变器IGBT驱动电路设计与优化 开关损耗优化
- 三相PWM整流器并联仿真及零序环流抑制算法的研究与应用
- 触摸屏直接控制变频器:昆仑通泰TPC与安川V1000及其他品牌变频器的485端口通信实现 宝典
- 多供区交直流潮流模型构建与求解:基于改进IEEE39节点系统的柔性互联算法研究 实战版
- 基于 OpenCV 原生库实现目标检测与文本检测的方法
- 基于C代码的异步电机矢量控制算法仿真与双闭环解耦控制实现高精度转速调节
- 本仓库存有目标检测 YOLO 系列及改进模块代码,欢迎自取
- Matlab Simulink中基于MRAS的直流母线电压传感器容错控制方法研究:包括设置电压传感器断路与漂移故障,并利用冗余开关进行容错切换
- 基于Verilog的UART IP核心开发与FPGA移植:从编码到仿真的全流程解析
- 风光柴储混合微电网中储能电池系统的MATLAB仿真研究:实现互补能量管理
- 汇川通IT7000触摸屏标准模板程序解析:提升编程效率与稳定性的关键