c++5.定义一个字符串类String,有两个私有数据成员:char* content和int len;要求: 1)在构造函数中提示用户输入字符串; 2) 用户能获取和显示字符串;(分别由两个函数完成) 3)实现对字符串中所有小写字母变成大写。 4)在主函数中定义String类的对象,并对所有成员函数进行测试。 注意内存的分配与释放。
时间: 2024-02-20 17:59:47 浏览: 81
好的,以下是使用C++编写的String类的代码:
```c++
#include <iostream>
#include <cstring>
using namespace std;
class String {
private:
char* content;
int len;
public:
String() {
content = NULL;
len = 0;
}
~String() {
if (content != NULL)
delete[] content;
}
void input() {
cout << "Please enter a string: ";
char buffer[1024];
cin.getline(buffer, 1024);
len = strlen(buffer);
content = new char[len + 1];
strcpy(content, buffer);
}
void output() {
if (content != NULL)
cout << "String: " << content << endl;
else
cout << "String not set." << endl;
}
void toUpperCase() {
if (content != NULL) {
for (int i = 0; i < len; i++) {
if (content[i] >= 'a' && content[i] <= 'z')
content[i] -= 32;
}
}
}
};
int main() {
String myString;
myString.input();
myString.output();
myString.toUpperCase();
myString.output();
return 0;
}
```
在上面的代码中,String类有两个私有数据成员:content和len,分别表示字符串内容和字符串长度。类中有三个公有成员函数:input()、output()和toUpperCase()。input()函数用于输入字符串,output()函数用于输出字符串,toUpperCase()函数用于将字符串中所有小写字母变成大写。
在构造函数中,将content初始化为NULL,len初始化为0。在析构函数中,如果content不为NULL,则使用delete[]释放空间。
在主函数中,创建一个String对象myString,并对其进行测试。首先调用input()函数输入字符串,然后调用output()函数输出原字符串。接着调用toUpperCase()函数将字符串中所有小写字母变成大写,最后再次调用output()函数输出修改后的字符串。
希望我的回答能够帮到您,如果您还有其他问题,请随时提出。
阅读全文