用指针的方法完成字符串替换。c语言
时间: 2024-05-08 14:22:30 浏览: 108
以下是一个用指针实现字符串替换的示例代码:
```c
#include <stdio.h>
#include <string.h>
void replace(char *str, const char *old, const char *new) {
// 计算旧字符串和新字符串的长度
int old_len = strlen(old);
int new_len = strlen(new);
// 在 str 中查找 old 字符串
char *p = strstr(str, old);
while (p != NULL) {
// 如果找到了 old 字符串,就将其替换为 new 字符串
memmove(p + new_len, p + old_len, strlen(p + old_len) + 1);
memcpy(p, new, new_len);
// 继续在剩余的字符串中查找 old 字符串
p = strstr(p + new_len, old);
}
}
int main() {
char str[100] = "hello, world!";
replace(str, "world", "everyone");
printf("%s\n", str);
return 0;
}
```
在上面的代码中,`replace` 函数用于替换字符串。它接受三个参数:`str` 表示要进行替换的字符串,`old` 表示要被替换的子字符串,`new` 表示替换成的新字符串。该函数使用 `strstr` 函数在 `str` 中查找 `old` 字符串,并使用 `memmove` 和 `memcpy` 函数进行替换。最后,`main` 函数演示了如何使用 `replace` 函数进行字符串替换。
阅读全文