如果把q和result合并应该如何改写
时间: 2024-03-12 09:50:05 浏览: 22
如果要将指针q和result合并,可以将新字符串的首地址存储在result指针中,然后使用result指针来遍历新字符串。改写后的代码如下:
```c++
char* ReplaceString(char* str, char* s1, char* s2)
{
int a = strlen(s1);
int b = strlen(s2);
int c = strlen(str);
char* result = new char[c + 1]; // 分配空间
char* p = str;
result[0] = '\0'; // 将result指针指向新字符串的首地址
while (*p != '\0') {
if (strncmp(p, s1, a) == 0) { // 判断是否匹配
strcat(result, s2); // 拼接替换的字符串
p += a; // 移动指针到下一个位置
} else {
char temp[2] = {*p, '\0'};
strcat(result, temp); // 拼接未匹配的字符
p++;
}
}
return result;
}
```
在这里,改用strcat函数将s2拼接到result指针所指向的位置,避免了使用指针q的需求。同时,在result指针的首地址处添加了一个结束符'\0',以确保新字符串的正确性。