C语言 替换串中指定子串
时间: 2023-10-21 09:05:21 浏览: 215
你可以使用C语言中的字符串函数来替换指定子串。以下是一个简单的示例代码:
```c
#include <stdio.h>
#include <string.h>
void replaceSubstring(char *s, char *old, char *new) {
char buffer[1000];
char *p;
if(!(p = strstr(s, old))) //在s串中查找第一次出现old的位置
return;
strncpy(buffer, s, p-s); // 复制p之前的内容到buffer中
buffer[p-s] = '\0';
sprintf(buffer+(p-s), "%s%s", new, p+strlen(old)); // 连接new和p之后的内容
strcpy(s, buffer);
replaceSubstring(s, old, new); // 递归调用,替换所有的old
}
int main() {
char str[1000] = "hello world";
char old[100] = "world";
char new[100] = "ChitGPT";
replaceSubstring(str, old, new);
printf("%s\n", str);
return 0;
}
```
在这个例子中,我们定义了一个函数`replaceSubstring`,它接受三个参数:待修改的字符串`s`、要被替换的子串`old`和替换成的新串`new`。该函数使用`strstr`函数找到第一次出现`old`的位置,然后使用`strncpy`函数将`p`之前的内容复制到`buffer`中。接着,使用`sprintf`函数将`new`和`p`之后的内容连接起来,最后使用`strcpy`函数将`buffer`复制回`s`中。
注意:这段代码只会替换第一次出现的子串,如果要替换所有的子串,需要在函数中使用递归调用。
阅读全文