C++ Primer 学习笔记(4)——标准库string类型

之所以空着笔记三,是因为3的内容要先于4,但似乎课本不是这么认为的。

string对象的定义和初始化

几种方式:
string s1;  //s1 is empty
string s2(s1);  //s2 is a copy of s1
string s3("value");  //s3 is initialized to a copy of literal value of "value"
string s4(n,'c')  //s4 is initialized to a copy of n 'c's

string对象的读写

    string类型的输入操作符:
      1.读取并忽略开头所有的空白字符(空格、换行符、制表符等);
      2.读取字符直到再次遇到空格

1.读取位置数目的string对象

    类比字符输入,只是操作整体为字符串。

2.用getline读取整行文本

    它不包括换行符,因为它整行读入。
    例如如下程序:
#include <iostream>
#include <string>
using namespace std;

int main()
{
    string line;
    while(getline(cin,line))
    {
        cout<<line<<endl;
    }
}

string对象的操作

s.empty() 如果s为空串,则返回true,否则为false
s.size() 返回s中字符的个数
s[n] 返回s中位置为n的字符,位置从0开始计数
s1+s2 把s1和s2连接成一个新字符串并返回新字符串
s1=s2 把s1内容替换为s2的副本
v1==v2 比较v1和v2的内容,相等则返回true,否则false
!=,<,<=,>,>= 保留原意义

例如:

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

int main()
{
    string a("aaa");
    string b("a");
    bool comparer(a>b);
    cout<<comparer<<endl;
}

上述结果为1。

1.string的size和empty操作

利用如下语句判断是否为空:
if(a.empty())
//ok:empty

2.string::size_type类型

它是一个类型,一个unsigned类型,可用于操作下标

3.从string对象获取字符

通过下表操作符([])。请看下例:
#include <iostream>
#include <string>


using namespace std;


int main()
{
    string str("some string");
    
    for(string::size_type ix = 0; ix != str.size()-1; ix+=2)
    {
        str[ix]='x';
    }


    for(string::size_type ix = 0; ix != str.size(); ++ix)
    {
        cout<<str[ix]<<endl;
    }
    return 0;
}

上例实现了如下功能:
1.初始化字符串str;
2.把字符串奇数位字符换成x;
3.逐个输出;
4.整个输出。

你可能感兴趣的:(C++,Primer,理论学习)