删除字符串中所有给定的子串问题描述:在给定字符串中查找所有特定子串并删除,如果没有找到相应子串,则不作任何操作。
要求实现函数: 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;
}