完成C串与String串的“+”运算,将程序补充完整。 String operator+ (const char* c, const String& s){ String w; int len = ① ; delete []w.str; w.str = ② ; String operator+ (const char* c, const String& s){ String w; int len = ① ; delete []w.str; w.str = ② ; if(w.str == NULL) s.error("overflow"); ③ ; ④ ; w.size = len; ⑤ ;}的答案
时间: 2023-08-24 07:05:20 浏览: 75
用c++ 编写一个程序,重载运算符“+”,实现字符串的连接。
5星 · 资源好评率100%
以下是完成 C 串与 String 串的“+”运算的代码:
```c++
String operator+ (const char* c, const String& s){
String w;
int len = strlen(c) + s.size; // 计算长度
w.str = new char[len + 1]; // 分配内存空间
if(w.str == NULL) s.error("overflow");
strcpy(w.str, c); // 复制字符串 c
strcat(w.str, s.str); // 连接字符串 s
w.size = len;
return w;
}
```
在这段代码中,我们使用了 C 语言中的字符串函数 `strlen`、`strcpy` 和 `strcat`,分别用于计算字符串长度、复制字符串和连接字符串。同时,我们还需要注意内存分配的大小,因为要在末尾添加 '\0',所以需要多分配一个字节。
需要注意的是,这段代码应该在 String 类的定义之外定义,因为它需要访问 String 类的私有成员。同时,这里的 `s` 参数是一个常量引用,因为我们不需要修改它的值。
阅读全文