string类

string

  • 使用字符串类string表示字符串

  • string实际上是对字符数组操作的封装

string类常用的构造函数

  • string(); //默认构造函数,建立一个长度为0的串

例:

string s1;

  • string(const char *s); //用指针s所指向的字符串常量初始化string对象

例:

string s2 = “abc”;

  • string(const string& rhs); //复制构造函数

例:

string s3 = s2;

string类常用操作

  • s + t 将串st连接成一个新串

  • s = t t更新s

  • s == t 判断st是否相等

  • s != t 判断st是否不等

  • s < t 判断s是否小于t(按字典顺序比较)

  • s <= t 判断s是否小于或等于(按字典顺序比较)

  • s > t 判断s是否大于(按字典顺序比较)

  • s >= t 判断s是否大于或等于(按字典顺序比较)

  • s[i] 访问串中下标为i的字符

  • 例:

string s1 = "abc", s2 = "def";

string s3 = s1 + s2; //结果是"abcdef"

bool s4 = (s1 < s2); //结果是true

char s5 = s2[1]; //结果是'e'

6-23 string类应用举例

#include <string>

#include <iostream>

using namespace std;

//根据value的值输出truefalse

//title为提示文字

inline void test(const char *title, bool value)

{

cout << title << " returns "

<< (value ? "true" : "false") << endl;

}

int main() {

string s1 = "DEF";

cout << "s1 is " << s1 << endl;

string s2;

cout << "Please enter s2: ";

cin >> s2;

cout << "length of s2: " << s2.length() << endl;

//比较运算符的测试

test("s1 <= \"ABC\"", s1 <= "ABC");

test("\"DEF\" <= s1", "DEF" <= s1);

//连接运算符的测试

s2 += s1;

cout << "s2 = s2 + s1: " << s2 << endl;

cout << "length of s2: " << s2.length() << endl;

return 0;

}

考虑:如何输入整行字符串?

  • cin>>操作符输入字符串,会以空格作为分隔符,空格后的内容会在下一回输入时被读取

输入整行字符串

  • getline可以输入整行字符串(要包string头文件),例如:

getline(cin, s2);

  • 输入字符串时,可以使用其它分隔符作为字符串结束的标志(例如逗号、分号),将分隔符作为getline的第3个参数即可,例如:

getline(cin, s2, ',');

6-24 getline输入字符串

include <iostream>

#include <string>

using namespace std;

int main() {

for (int i = 0; i < 2; i++){

string city, state;

getline(cin, city, ',');

getline(cin, state);

cout << "City:" << city << “ State:" << state << endl;

}

return 0;

}


运行结果:

Beijing,China

City: Beijing State: China

San Francisco,the United States

City: San Francisco State: the United States

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值