定义一个字符串类String,实现判断该字符串是否为回文字符串。所谓回文字符串,是指该字符串左右对称。例如字符串“123321”是回文字符串。 具体要求如下: (1)私有数据成员 char *str; int y:标记是否为回文字符串。 (2)公有成员函数 String (char *s) :构造函数,用给定的参数s初始化数据成员str。y初始化为0。 void huiwen () :判断str所指向的字符串是否为回文字符串。 void show( ) :在屏幕上显示字符串。 (3)在主程序中定义字符串char s[]=“ababcedbaba”作为原始字符串。定义一个String类对象test,用s初始化test,完成对该类的测试。
时间: 2024-02-29 16:52:16 浏览: 96
好的,根据你的要求,我来为你演示代码:
```cpp
#include<iostream>
#include<cstring>
using namespace std;
class String {
private:
char *str; // 字符串指针
int y; // 是否为回文字符串的标记
public:
String(char *s); // 构造函数
void huiwen(); // 判断是否为回文字符串
void show(); // 输出字符串
};
String::String(char *s) {
int len = strlen(s);
str = new char[len + 1];
strcpy(str, s);
y = 0;
}
void String::huiwen() {
int len = strlen(str);
for(int i = 0; i < len / 2; i++) {
if(str[i] != str[len - i - 1]) {
y = 0;
return;
}
}
y = 1;
}
void String::show() {
cout << str << endl;
}
int main() {
char s[] = "ababcedbaba";
String test(s);
cout << "原始字符串:";
test.show();
test.huiwen();
if(test.y) {
cout << "该字符串是回文字符串" << endl;
} else {
cout << "该字符串不是回文字符串" << endl;
}
return 0;
}
```
输出结果如下:
```
原始字符串:ababcedbaba
该字符串是回文字符串
```
阅读全文