写一个在内存中替换字符串的函数
时间: 2024-01-22 20:20:48 浏览: 102
字符串子串替换函数
下面是一个简单的C++函数,用于在内存中替换字符串:
```c++
void replaceString(char* str, const char* oldStr, const char* newStr) {
int oldLen = strlen(oldStr);
int newLen = strlen(newStr);
char* p = strstr(str, oldStr);
while (p != nullptr) {
memmove(p + newLen, p + oldLen, strlen(p + oldLen) + 1);
memcpy(p, newStr, newLen);
p = strstr(p + newLen, oldStr);
}
}
```
这个函数接受三个参数:`str` 是要搜索和替换的字符串,`oldStr` 是要被替换的字符串,`newStr` 是替换后的新字符串。
函数使用 `strstr` 函数来查找 `oldStr` 在 `str` 中出现的位置。如果找到了,那么就使用 `memmove` 将后面的部分向后移动 `newLen - oldLen` 个字节,为新字符串腾出空间。然后使用 `memcpy` 将新字符串复制到原来的位置。最后,函数继续在后面查找 `oldStr` 是否还有出现的位置,直到搜索完整个字符串为止。
阅读全文