删除字符串中所有给定的子串问题描述:在给定字符串中查找所有特定子串并删除,如果没有找到相应子串,则不作任何操作。
要求实现函数: int delete_sub_str(const char *str, const char *sub_str, char *result_str)
【输入】 str:输入的被操作字符串
sub_str:需要查找并删除的特定子字符串 【输出】 result_str:在str字符串中删除所有 sub_str子字符串后的结果
【返回】 删除的子字符串的个数
#include<stdio.h> #include<string.h> int delete_sub_str(const char *str, const char *sub_str, char *result_str) { int count = 0; int k = 0, j = 0; int tem; int n = strlen(sub_str); while (str[k] != '\0') { tem = k; for (int i = 0; i < n; i++) { if (sub_str[i] == str[k]) k++; else { break; } } if (i == n) count++; else { result_str[j++] = str[tem]; k = tem + 1; } } result_str[j] = '\0'; return count; } int main() { char *str = "aaadbaadcd"; char *sub = "aad"; char res[50] = ""; int count = delete_sub_str(str, sub, res); printf("子字符串的个数是:%d\n", count); printf("删除子字符串后:%s\n", res); return 0; }