有关string的一些问题。

xiaoshi935 2009-05-06 09:18:06
string的用法虽然是要比char的用法灵活。可是仍然很糊涂。不知道如何使用。
下面问一个问题。
定义一个Employee类,其中含有姓名和生日两个私有变量,且都是string形式的。具体到调用的时候,就有一些问题了,代码如下:

//string.cpp

#include <iostream>
#include <fstream>
#include <string>
using namespace std;

class Employee {
string name;
string birthday;
public:
void setName(string s) {
name = s;
}

void setBirthday (string t) {
birthday = t;
}

char getName { //此处不知道该如何使用
return name;
}

char getBirthday { //此处也是一样,不知道该如何使用
return birthday;
}

void display() {
cout << "姓名" << name << "生日" << birthday << endl;
cout << "姓名" << getName() << "生日" << getBirthday() << endl;
};

void main () {
Employee e;
e.setName("小李");
e.setBirthday("1988-11-11");
e.display();
}

主要是目前仍不清晰string是否可以这样用。以前都是用char的,char形式的Employee类定义如下:

class Employee { //基类employee,含有职工姓名和出生日期的信息简表
char name[10]; //姓名
char birthday[10]; //生日

public:
void setName(char s[]) {
strcpy(name,s);
}
char *getName() {
return name;
}
void setBirthday(char b[]) {
strcpy(birthday,b);
}
char *getBirthday() {
return birthday;
}
virtual void display() {
cout << getName() << "\t" << getBirthday();
}
};

有关char的用法也是比较常见,这个代码页是我在书上看到的,套用比较好套用。
但是如果用string的话怎么用呢?
...全文
188 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiaoshi935 2009-05-06
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 lingyin55 的回复:]
char getName { //此处不知道该如何使用
return name;
}

char getName()const { //此处不知道该如何使用
return name.c_str();
}


char getBirthday { //此处也是一样,不知道该如何使用
return birthday;
}


char getBirthday()const { //此处也是一样,不知道该如何使用
return birthday.c_str();
}
[/Quote]
发现还是string好用一些,char这个用着用着就会晕。多谢呀
lpf000 2009-05-06
  • 打赏
  • 举报
回复
const char* getBirthday()const {
return birthday.c_str();
}
lingyin55 2009-05-06
  • 打赏
  • 举报
回复
上面的忘记加上const限定了,有两种方式,注释的那种也可以


#include <iostream>
#include <fstream>
#include <string>
using namespace std;

class Employee
{
string name;
string birthday;
public:
void setName(string s) {
name = s;
}

void setBirthday (string t) {
birthday = t;
}

//const char* getName()const { //此处不知道该如何使用
// return name.c_str();
//}

string getName()const { //此处不知道该如何使用
return name;
}

// const char* getBirthday()const { //此处也是一样,不知道该如何使用
// return birthday.c_str();
//}

string getBirthday()const { //此处也是一样,不知道该如何使用
return birthday;
}

void display() {
cout << "姓名" << name << "生日" << birthday << endl;
cout << "姓名" << getName() << "生日" << getBirthday() << endl;
}
};

void main()
{
Employee e;
e.setName("小李");
e.setBirthday("1988-11-11");
e.display();
}

水晶魔法师 2009-05-06
  • 打赏
  • 举报
回复
把char * ,char数组都换成 string 就ok ,用string省操好多心,string 很好很强大
char getName { //此处不知道该如何使用
return name;
}
例如:string getName(){return name;}
string getBirthday() {
return birthday;
}


lpf000 2009-05-06
  • 打赏
  • 举报
回复
UP
lingyin55 2009-05-06
  • 打赏
  • 举报
回复
char getName { //此处不知道该如何使用
return name;
}

char getName()const { //此处不知道该如何使用
return name.c_str();
}


char getBirthday { //此处也是一样,不知道该如何使用
return birthday;
}


char getBirthday()const { //此处也是一样,不知道该如何使用
return birthday.c_str();
}


pengzhixi 2009-05-06
  • 打赏
  • 举报
回复
你上面不是用了么
mengde007 2009-05-06
  • 打赏
  • 举报
回复

string getName {
return name;
}

string getBirthday {
return birthday;
}
//声明什么;返回什么;

65,211

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧