C/C++编程实践:字符过滤与子串删除
需积分: 10 8 浏览量
更新于2024-07-24
3
收藏 180KB DOC 举报
本资源是关于C++编程的一系列题目,主要涉及两个部分:字符串过滤和删除特定子串功能的实现。首先,我们来看第一个题目——字符串过滤程序。
**字符串过滤程序**
该程序的主要目标是过滤一个输入字符串中的非首次出现的字符。通过定义一个大小为26的数组`a`来记录每个小写字母是否首次出现。在`stringFilter`函数中,遍历输入字符串`pInputStr`,计算每个字符的小写索引`pos`,然后检查数组`a[pos]`,如果为0表示该字符是首次出现,将数组元素置为1,并将字符添加到输出字符串`pOutputStr`中。最后,将`pOutputStr`的结尾填充'\0'以确保其成为一个有效的字符串。
在`main`函数中,首先读取输入字符串,计算长度并动态分配内存给`pOutputStr`。然后调用`stringFilter`函数对输入字符串进行过滤,并输出过滤后的结果。程序运行结束后,暂停等待用户按键,最后返回0。
**删除特定子串功能**
第二个题目是实现一个`delete_sub_str`函数,它接受两个参数:原始字符串`str`和要删除的子串`sub_str`,以及一个结果字符串`result_str`。该函数的目标是找到并删除`str`中所有与`sub_str`匹配的子串,返回删除的子串个数。首先获取两个字符串的长度,然后用`while`循环遍历原始字符串。在每次迭代中,使用`strncmp`函数比较当前子串和目标子串是否相等,如果不等则继续查找,等于则计数器`cnt`加1。找到所有匹配后,更新原始字符串`str`为剩余部分,并将结果存储在`result_str`中。
在`main`函数中,调用`delete_sub_str`函数处理示例字符串`"abcde123abcd123"`和子串`"123"`,得到删除后的结果字符串`"abcdeabcd"`,并输出删除次数2。整个过程展示了C++编程中字符串操作的基本技巧,包括数组、指针、字符串函数以及循环控制结构的运用。
通过这两个题目,学习者可以加深对C++字符串处理、数组使用以及字符串匹配算法的理解,对于初学者来说,这是提升编程技能和理解面向过程编程的重要实践案例。
2022-06-20 上传
2021-08-07 上传
2011-11-18 上传
2023-09-21 上传
576 浏览量
2023-06-25 上传
2019-03-08 上传
2010-05-31 上传
2010-11-28 上传
此与彼岸
- 粉丝: 0
- 资源: 10