C/C++编程实践:字符过滤与子串删除

需积分: 10 0 下载量 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++字符串处理、数组使用以及字符串匹配算法的理解,对于初学者来说,这是提升编程技能和理解面向过程编程的重要实践案例。