VC驿站

 找回密码
 加入驿站

QQ登录

只需一步,快速开始

搜索
查看: 144|回复: 3

[已解决]如何去用类实现字符串的输入输出?

[复制链接]
41_avatar_middle
最佳答案
0 
在线会员 发表于 2020-3-17 14:50:25 | 显示全部楼层 |阅读模式
15驿站币
实现一个简易的字符串类,实现将输入的字符串通过对象‘a’和‘b’输出。字符串类的原型‘stringUser’以给出,如下所示:
class stringUser
{
public:
    stringUser(const char *str = NULL);     //普通构造函数
    stringUser(const stringUser &other);    //拷贝构造函数
    ~ stringUser(void);                    //析构函数
private:
    char *m_String;                  //私有成员,保存字符串
};
    请在代码编辑框内补全‘stringUser’类的三个成员函数:构造函数,拷贝构造函数和析构函数。
    1. 输入的字符串长度范围: [0, 9];
    2. 析构函数中,要求将字符串完整输出(并换行)。
搞不懂如何去实现构造函数和拷贝构造函数,求各位大神教一下。
最佳答案
92_avatar_small
2020-3-17 14:50:26
这样应该可以吧!

  1. class stringUser
  2. {
  3. public:
  4.         stringUser(const char *str = NULL)
  5.         {
  6.                 if (!str)
  7.                 {
  8.                         m_String = NULL;
  9.                         return;
  10.                 }

  11.                 int str_len = strlen(str);
  12.                 m_String = new char[str_len + 1];
  13.                 memset(m_String, 0, str_len + 1);
  14.                 strcpy(m_String, str);
  15.         };

  16.         stringUser(const stringUser &other)
  17.         {
  18.                 if (!other.m_String)
  19.                 {
  20.                         m_String = NULL;
  21.                         return;
  22.                 }

  23.                 int str_len = strlen(other.m_String);
  24.                 m_String = new char[str_len + 1];
  25.                 memset(m_String, 0, str_len + 1);
  26.                 strcpy(m_String, other.m_String);
  27.         };

  28.         ~stringUser(void)
  29.         {
  30.                 if (m_String)
  31.                 {
  32.                         cout << m_String << endl;
  33.                         delete[] m_String;
  34.                 }
  35.         };

  36. private:
  37.         char *m_String;
  38. };
复制代码

最佳答案

查看完整内容

这样应该可以吧!




上一篇:关于sql数据库的操作
下一篇:一道链表的题,谢谢大佬
92_avatar_middle
最佳答案
9 
在线会员 发表于 2020-3-17 14:50:26 | 显示全部楼层    本楼为最佳答案   
bestAnswer
这样应该可以吧!

  1. class stringUser
  2. {
  3. public:
  4.         stringUser(const char *str = NULL)
  5.         {
  6.                 if (!str)
  7.                 {
  8.                         m_String = NULL;
  9.                         return;
  10.                 }

  11.                 int str_len = strlen(str);
  12.                 m_String = new char[str_len + 1];
  13.                 memset(m_String, 0, str_len + 1);
  14.                 strcpy(m_String, str);
  15.         };

  16.         stringUser(const stringUser &other)
  17.         {
  18.                 if (!other.m_String)
  19.                 {
  20.                         m_String = NULL;
  21.                         return;
  22.                 }

  23.                 int str_len = strlen(other.m_String);
  24.                 m_String = new char[str_len + 1];
  25.                 memset(m_String, 0, str_len + 1);
  26.                 strcpy(m_String, other.m_String);
  27.         };

  28.         ~stringUser(void)
  29.         {
  30.                 if (m_String)
  31.                 {
  32.                         cout << m_String << endl;
  33.                         delete[] m_String;
  34.                 }
  35.         };

  36. private:
  37.         char *m_String;
  38. };
复制代码

评分

参与人数 1驿站币 +2 热心值 +2 收起 理由
58_avatar_small thzzl + 2 + 2 很给力!

查看全部评分

92_avatar_middle
最佳答案
9 
在线会员 发表于 2020-3-17 15:18:06 | 显示全部楼层
这种小题目也要上来问啊?
自己写一写多好啊?
41_avatar_middle
最佳答案
0 
ico_lz  楼主| 发表于 2020-3-17 15:24:47 | 显示全部楼层
BreakPoint 发表于 2020-3-17 15:18
这种小题目也要上来问啊?
自己写一写多好啊?

是在写......本人不是计算机系的,只是想练练手,但是不会怎么去写这些函数,如果您方便的话或许可以给我写一下?
您需要登录后才可以回帖 登录 | 加入驿站 qq_login

本版积分规则

×【发帖 友情提示】
1、请回复有意义的内容,请勿恶意灌水;
2、纯数字、字母、表情等无意义的内容系统将自动删除;
3、若正常回复后帖子被自动删除,为系统误删的情况,请重新回复其他正常内容或等待管理员审核通过后会自动发布;
4、感谢您对VC驿站一如既往的支持,谢谢合作!

关闭

站长提醒上一条 /2 下一条

QQ|小黑屋|手机版|VC驿站 ( 辽ICP备09019393号 )|网站地图wx_jqr

GMT+8, 2020-7-5 23:49

Powered by CcTry.CoM

© 2009-2020 cctry.com

快速回复 返回顶部 返回列表