C语言字符串删除中间指定部分字符串
时间: 2023-09-06 18:13:15 浏览: 202
您好!要在C语言中删除字符串中的特定部分,可以使用以下方法:
1. 首先,确定要删除的部分的起始位置和长度。
2. 创建一个新的字符串,长度为原始字符串减去要删除的部分的长度。
3. 将原始字符串中的前半部分复制到新的字符串中。
4. 将原始字符串中的后半部分复制到新的字符串中。
5. 使用新的字符串替换原始字符串。
下面是一个示例代码,演示了如何删除字符串中的特定部分:
```c
#include <stdio.h>
#include <string.h>
void deleteSubstring(char *str, const char *sub) {
int len = strlen(sub); // 获取要删除的子字符串的长度
char *p = strstr(str, sub); // 在原始字符串中查找子字符串的起始位置
while (p) {
memmove(p, p + len, strlen(p + len) + 1); // 将后面的字符串向前移动,覆盖要删除的子字符串
p = strstr(p, sub); // 继续查找下一个子字符串的起始位置
}
}
int main() {
char str[100] = "Hello, World! This is a test string.";
const char sub[10] = "test ";
printf("原始字符串:%s\n", str);
deleteSubstring(str, sub);
printf("删除特定部分后的字符串:%s\n", str);
return 0;
}
```
上述代码中的`deleteSubstring`函数接受一个原始字符串和要删除的子字符串作为参数,在循环中使用`memmove`函数将后面的字符串向前移动,以删除子字符串。最后,打印删除特定部分后的字符串。
希望这可以帮助到您!如果还有其他问题,请随时提问。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_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)