用c语音在字符串1中删除字符串2
时间: 2024-02-25 13:56:43 浏览: 24
好的,我可以帮你解决这个问题。这里我提供一种简单的方法来实现这个功能,你可以参考下面的代码:
```c
#include <stdio.h>
#include <string.h>
void delete_str(char *str1, const char *str2) {
int len1 = strlen(str1);
int len2 = strlen(str2);
int i, j, k;
for (i = 0; i < len1 - len2 + 1; i++) {
for (j = 0, k = i; j < len2 && str1[k] == str2[j]; j++, k++);
if (j == len2) {
for (j = i, k = i + len2; k < len1; j++, k++) {
str1[j] = str1[k];
}
str1[j] = '\0';
i--; //继续从当前位置往后查找
}
}
}
int main() {
char str1[] = "abc123def456";
char str2[] = "def";
printf("Before: %s\n", str1);
delete_str(str1, str2);
printf("After: %s\n", str1);
return 0;
}
```
在这个代码中,我们定义了一个 `delete_str` 函数来实现在字符串1中删除字符串2的功能。具体实现方法是遍历整个字符串1,在每个位置上查找是否存在与字符串2相等的子串。如果找到了,则将该子串从字符串1中删除。
在主函数中,我们定义了两个字符串并调用 `delete_str` 函数来删除字符串2。最后输出结果,你可以在自己的环境中运行一下看看效果。