C语言字符串子串全部替换
时间: 2024-11-03 18:04:40 浏览: 42
在C语言中,替换字符串中的某个子串并不像其他高级语言那样提供内置的替换函数,你需要手动遍历整个字符串。这里是一个简单的例子,它使用`strstr()`找到子串的位置,然后使用`strcpy()`和`memmove()`进行替换:
```c
#include <stdio.h>
#include <string.h>
void replaceSubstring(char* str, const char* substr, const char* replacement) {
int start = 0, end;
while ((end = strstr(str + start, substr)) != NULL) {
memmove(end + strlen(replacement), end + strlen(substr), strlen(end) - strlen(substr) + 1);
strcpy(end, replacement);
start = end + strlen(replacement); // 更新开始查找的位置
}
}
int main() {
char str[100] = "Hello, world!";
char substring[] = "world";
char replacement[] = "Universe";
replaceSubstring(str, substring, replacement);
printf("Replaced string: %s\n", str); // 输出"Hello, Universe!"
return 0;
}
```
这个函数会在原字符串中找到所有匹配到的子串,并替换它们。注意,这个函数只处理了最外层的情况,如果子串在另一个子串内部,那么这部分会被误删或未被替换。
阅读全文