C++中string非成员函数重载

目录

1.operator+ 组合字符串

2.relational operators 关系运算判断

3.swap 交换字符串

4.operator>> 输入

5.operator<< 输出

6.getline 输入


1.operator+ 组合字符串

string (1)
string operator+ (const string& lhs, const string& rhs);
c-string (2)
string operator+ (const string& lhs, const char*   rhs);
string operator+ (const char*   lhs, const string& rhs);
character (3)
string operator+ (const string& lhs, char          rhs);
string operator+ (char          lhs, const string& rhs);

 1.string operator+ (const string& lhs, const string& rhs) 组合对象lhs和rhs

2.string operator+ (const string& lhs, const char* rhs) 组合对象lhs和字符串rhs

string operator+ (const char* lhs, const string& rhs) 组合字符串lhs和对象rhs

3.string operator+ (const string& lhs, char rhs) 组合对象lhs和字符rhs

string operator+ (char lhs, const string& rhs) 组合字符lhs和对象rhs

string str1("hello ");
string str2("bit ");
char s[] = "world ";
char c = '!';
string ret1, ret2, ret3, ret4, ret5, ret6;
ret1 = str1 + str2;//hello bit
ret2 = str2 + str1;//bit hello       
ret3 = str1 + s;//hello world
ret4 = s + str1;//world hello
ret5 = str1 + c;//hello !
ret6 = c + str1;//!hello

2.relational operators 关系运算判断

(1)
bool operator== (const string& lhs, const string& rhs);
bool operator== (const char*   lhs, const string& rhs);
bool operator== (const string& lhs, const char*   rhs);
(2)
bool operator!= (const string& lhs, const string& rhs);
bool operator!= (const char*   lhs, const string& rhs);
bool operator!= (const string& lhs, const char*   rhs);
(3)
bool operator<  (const string& lhs, const string& rhs);
bool operator<  (const char*   lhs, const string& rhs);
bool operator<  (const string& lhs, const char*   rhs);
(4)
bool operator<= (const string& lhs, const string& rhs);
bool operator<= (const char*   lhs, const string& rhs);
bool operator<= (const string& lhs, const char*   rhs);
(5)
bool operator>  (const string& lhs, const string& rhs);
bool operator>  (const char*   lhs, const string& rhs);
bool operator>  (const string& lhs, const char*   rhs);
(6)
bool operator>= (const string& lhs, const string& rhs);
bool operator>= (const char*   lhs, const string& rhs);
bool operator>= (const string& lhs, const char*   rhs);

3.swap 交换字符串

void swap (string& x, string& y) 交换对象x和对象y

string str1("hello");
string str2("bit");
cout << "begin: str1: " << str1 << " str2: " << str2 << endl;
swap(str1, str2);
cout << "last: str1: " << str1 << " str2: " << str2 << endl;
//begin: str1: hello str2 : bit
//last : str1: bit str2 : hello

4.operator>> 输入

istream& operator>> (istream& is, string& str)

cin输入以空字符结尾,作为一次输入

5.operator<< 输出

ostream& operator<< (ostream& os, const string& str)

6.getline 输入

(1)
istream& getline (istream& is, string& str, char delim);
(2)
istream& getline (istream& is, string& str);

1.istream& getline (istream& is, string str, char delim) 向对象str中输入内容,delim为手动设置的结束标志

2.istream& getline (istream& is, string str) 向对象str中输入内容,默认结束标志为换行符(回车)

getline可以解决cin不能读取空格字符的缺陷

string str;
getline(cin, str);//输入123 456
cout << str << endl;//输出123 456
getline(cin, str2, '#');//输入123#456
cout << str2 << endl;//输出123
  • 26
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

南林yan

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值