删除字符串中指定的字符串C
时间: 2025-01-01 08:30:45 浏览: 20
### 如何在 C 语言中从字符串中删除指定的子字符串
为了实现从字符串中删除指定的子字符串,在C语言里通常会采用遍历源字符串并构建新字符串的方式,跳过不需要的部分。下面是一个具体的例子来展示这个过程:
```c
#include <stdio.h>
#include <string.h>
char* remove_substring(char *source, const char *to_remove) {
size_t len_to_remove = strlen(to_remove);
if (len_to_remove == 0 || source == NULL || to_remove == NULL) return source;
char *write_pos = source;
char *read_pos = source;
while (*read_pos != '\0') {
// Check if the substring matches at current position.
if (strncmp(read_pos, to_remove, len_to_remove) == 0) {
read_pos += len_to_remove; // Skip over this instance of `to_remove`.
} else {
*(write_pos++) = *(read_pos++); // Copy character and advance both pointers.
}
}
*write_pos = '\0'; // Null terminate the new string.
return source;
}
int main() {
char str[] = "hello world";
printf("Original String: %s\n", str);
remove_substring(str, "world");
printf("Modified String: %s\n", str);
return 0;
}
```
上述代码定义了一个`remove_substring`函数用于移除给定字符串中的所有匹配到的目标子串实例[^2]。
当执行这段程序时,原始字符串 `"hello world"` 中所有的 `"world"` 子串都会被移除掉,并打印修改后的字符串。
阅读全文