用c在字符串1中删除字符串2
时间: 2024-05-07 09:20:57 浏览: 18
可以使用C语言中的字符串函数来实现删除字符串2。以下是一种实现方式:
```c
#include <stdio.h>
#include <string.h>
void deleteSubstring(char *str1, const char *str2) {
int len1 = strlen(str1);
int len2 = strlen(str2);
for (int i = 0; i <= len1 - len2; i++) {
if (strncmp(str1 + i, str2, len2) == 0) { // 找到匹配的子串
memmove(str1 + i, str1 + i + len2, len1 - i - len2 + 1); // 删除子串
len1 -= len2;
i--; // 因为删除了子串,所以要回退一步
}
}
}
int main() {
char str1[100] = "hello world";
char *str2 = "lo";
deleteSubstring(str1, str2);
printf("%s", str1); // 输出 "he world"
return 0;
}
```
函数`deleteSubstring`接受两个参数:`str1`为待处理的字符串,`str2`为要删除的子串。利用循环遍历`str1`,如果找到了匹配的子串,就使用`memmove`函数将子串后面的字符向前移动,从而完成删除。注意,在删除子串之后,`i`的值需要回退一步,因为下一次循环时,原来在`i+1`位置的字符现在已经被移到了`i`位置。
相关推荐
![](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)