1246: 设计回文判断类
题目描述
分析下面所给自定义类 myStrCla,以及随后给出的主函数及该程序执行后的屏幕显示结果。
而后在类体外给出(补充)其三个成员函数的具体实现(用于完成所设定的自定义功能), 以使程序执行后的屏幕显示结果为:
abcdedcba
True
类定义及主函数部分的程序代码如下:
class myStrCla { //自定义类 myStrCla
char str[101]; //存放字符串(假设字符串不超过 100 个字符)
int len; //当前字符串的具体长度
public:
myStrCla(char* s) ; //构造函数,由 s 带来字符串 str 的初值
void strOut(); //屏幕输出字符串 str
bool strIsPal(); //str 串是否为“回文串”(正读与反读相同的串)
};
输入
输入一共有一行,输入一个字符串,不超过100个字符
输出
输出有两行,第一部分是调用myStrCla类的strOut()函数输出字符串str,第二部分是调用myStrCla类的strIsPal()函数判断str串是否是“回文串”,输出False或True
样例输入
abcdedcba
样例输出
abcdedcba
True
我的解法
#include "bits/stdc++.h"
using namespace std;
class myStrCla { //自定义类 myStrCla
char str[101]; //存放字符串(假设字符串不超过 100 个字符)
int len; //当前字符串的具体长度
public:
myStrCla(char* s); //构造函数,由 s 带来字符串 str 的初值
void strOut(); //屏幕输出字符串 str
bool strIsPal(); //str 串是否为“回文串”(正读与反读相同的串)
};
myStrCla::myStrCla(char* s)
{
len = strlen(s);
strcpy(str, s);
}
void myStrCla::strOut()
{
for (int i = 0; i < len; i++)
{
cout << str[i];
}
cout << endl;
}
bool myStrCla::strIsPal()
{
for (int i = 0; i < len; i++)
{
if (str[i] != str[len - 1 - i])
{
return 0;
}
}
return 1;
}
int main()
{
char a[101];
cin >> a;
myStrCla b(a);
b.strOut();
b.strIsPal() == 1 ? cout << "True" : cout << "False";
return 0;
}