6.定义一个字符串类String,有两个私有数据成员:char* content和int len;要求: 1)在构造函数中提示用户输入字符串; 2) 用户能获取和显示字符串;(分别由两个函数完成) 3)实现对字符串中所有小写字母变成大写。 4)在主函数中定义String类的对象,并对所有成员函数进行测试。 注意内存的分配与释放。
时间: 2023-07-16 07:12:07 浏览: 101
下面是一个可能的实现:
```cpp
#include <iostream>
#include <cstring>
class String {
private:
char* content;
int len;
public:
String() : content(nullptr), len(0) {}
~String() {
if (content) {
delete[] content;
}
}
void input() {
std::cout << "请输入字符串:";
std::string str;
std::getline(std::cin, str);
len = str.length();
content = new char[len + 1];
std::strcpy(content, str.c_str());
}
void output() const {
std::cout << "字符串为:" << content << std::endl;
}
void to_uppercase() {
for (int i = 0; i < len; i++) {
if (content[i] >= 'a' && content[i] <= 'z') {
content[i] = content[i] - 'a' + 'A';
}
}
}
};
int main() {
String s;
s.input();
s.output();
s.to_uppercase();
s.output();
return 0;
}
```
在构造函数中,我们将`content`初始化为`nullptr`,`len`初始化为`0`。在`input()`函数中,我们提示用户输入字符串,并将其长度存储在`len`中,然后动态分配足够的内存来存储字符串,并使用`strcpy()`函数将其复制到`content`指向的内存中。在`output()`函数中,我们简单地输出`content`指向的字符串。在`to_uppercase()`函数中,我们遍历字符串中的每个字符,如果它是小写字母,则将其转换为大写字母。在`main()`函数中,我们创建一个`String`类的对象`s`,调用`input()`函数来输入字符串,然后分别调用`output()`和`to_uppercase()`函数来显示字符串和将其转换为大写字母。最后,我们在结束前自动调用`s`的析构函数来释放分配的内存。
阅读全文