c语言字符串替换
时间: 2023-06-21 19:14:00 浏览: 52
在 C 语言中,可以使用循环和条件语句来实现字符串替换。以下是一种常见的实现方式:
```c
#include <stdio.h>
#include <string.h>
void replace(char *str, const char *orig, const char *rep)
{
static char buffer[4096];
char *p;
if (!(p = strstr(str, orig))) // 检查原字符串是否出现在目标字符串中
return;
strncpy(buffer, str, p-str); // 复制原字符串中原字符串前面的部分
buffer[p-str] = '\0';
sprintf(buffer+(p-str), "%s%s", rep, p+strlen(orig)); // 连接新字符串和原字符串后面的部分
strcpy(str, buffer);
replace(str, orig, rep); // 递归调用,以便替换所有出现的字符串
}
int main()
{
char str[100] = "hello world";
replace(str, "world", "c language");
printf("%s\n", str); // 输出 "hello c language"
return 0;
}
```
以上代码中,`replace` 函数接收三个参数,分别是目标字符串、要替换的字符串和替换成的新字符串。使用 `strstr` 函数查找原字符串是否出现在目标字符串中,如果找到了,则使用 `strncpy` 函数复制原字符串中原字符串前面的部分,并在其末尾添加一个空字符。然后使用 `sprintf` 函数将新字符串和原字符串后面的部分连接起来,并将结果保存在 `buffer` 数组中。最后使用 `strcpy` 函数将 `buffer` 数组中的字符串复制回目标字符串中,并递归调用 `replace` 函数,以便替换所有出现的字符串。