在字符串1中删除字符串2的C语言代码
时间: 2024-05-04 16:21:06 浏览: 20
以下是一种实现方式:
```c
#include <stdio.h>
#include <string.h>
void deleteSubstring(char str1[], char str2[]) {
int i, j, k;
int len1 = strlen(str1);
int len2 = strlen(str2);
for (i = 0; i <= len1 - len2; i++) {
for (j = i; j < i + len2; j++) {
if (str1[j] != str2[j - i]) {
break;
}
}
if (j == i + len2) {
for (k = i; k < len1 - len2; k++) {
str1[k] = str1[k + len2];
}
str1[k] = '\0';
i -= len2;
len1 = strlen(str1);
}
}
}
int main() {
char str1[100] = "hello world";
char str2[10] = "llo";
deleteSubstring(str1, str2);
printf("%s", str1);
return 0;
}
```
解释一下:
首先,我们需要遍历字符串1中的所有子串,判断是否与字符串2匹配。如果匹配,则将字符串1中该子串后面的所有字符向前移动,覆盖掉匹配的子串。然后,我们需要将i的值减去len2,因为我们刚刚删除了一个长度为len2的子串,所以接下来需要重新从当前位置开始匹配。最后,我们需要更新字符串1的长度,以便下一次循环时能够正确地遍历整个字符串。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)