用c++编写一个函数: char *ReplaceString(char * str, char * s1, char * s2); 该函数用s2替换str中的s1,函数返回替换后的字符串的指针。 题目中已经给出main函数,main函数会调用ReplaceString函数进行测试,依次输入字符串str、s1和s2,最后输出替换后字符串。
时间: 2024-03-14 22:44:14 浏览: 107
C++中replace()函数使用方法汇总
以下是一个用C++编写的实现:
```c++
#include <iostream>
#include <cstring>
using namespace std;
char* ReplaceString(char* str, char* s1, char* s2) {
int len1 = strlen(s1);
int len2 = strlen(s2);
char* pos = strstr(str, s1); // 查找s1在str中的位置
while (pos != NULL) {
memmove(pos + len2, pos + len1, strlen(pos + len1) + 1); // 后面的字符串向后移动
memcpy(pos, s2, len2); // 替换s1为s2
pos = strstr(pos + len2, s1); // 查找下一个s1在str中的位置
}
return str;
}
int main() {
char str[100], s1[100], s2[100];
cin.getline(str, 100);
cin.getline(s1, 100);
cin.getline(s2, 100);
cout << ReplaceString(str, s1, s2) << endl;
return 0;
}
```
在上面的代码中,`ReplaceString`函数接受三个参数:原始字符串`str`,需要替换的字符串`s1`和替换成的字符串`s2`。`strstr`函数用于在字符串中查找子字符串,`memmove`函数用于移动内存块,`memcpy`函数用于复制内存块。在`main`函数中,我们调用`ReplaceString`函数替换字符串,并输出结果。需要注意的是,`getline`函数用于从标准输入中读取一行字符串,最多读取`100`个字符。
阅读全文