您的位置:首页 > 编程语言 > C语言/C++

c++学习笔记(2)字符串

2016-09-05 23:45 218 查看

1.字符串

1.1定义和初始化string对象

string s1;//默认初始化s1是一个空字符串
string s2(s1);//s2是s1的副本
string s2 = s1;//等价于s2(s1),s2是s1的副本
string s3("value");//s3是字面值“value”的副本,除了字面值最后的那个空字符外
string s3 = "value";//同s3("value")
string s4(10,'c');//把s4初始化为由连续10个字符c组成的串


如果使用等号初始化,其实执行的是拷贝初始化,编译器把等号右侧的初始值拷贝到新创建的对象中去。如果不用等号,则为直接初始化。

1.2string对象上的操作

读写string对象:

string s;//定义string
cin >> s;//将string对象读入s,遇到空白停止
cout << s << endl;//输出s


读取未知数量的string对象:

string word;
while (cin >> word) {
cout << word << endl;
return 0;
}


使用getline读取一整行:

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


empty和size:

string line;
while (getline(cin, line)) {
//empty返回字符串是否为空,若为空则跳过
if (!line.empty()) {
cout << line << endl;
}
}


string line;
while (getline(cin, line)) {
//size返回字符串大小,若小于80则跳过
if (line.size() < 80) {
cout << line << endl;
}
}


string::size_type 类型:

对于size函数来说,返回一个int或者返回一个unsigned似乎是合情合理的。但是size函数返回的是一个string::size_type。由于size函数返回的是一个无符号整型数,因此切记,如果在表达式中混用了带符号数和无符号数将可能产生意想不到的结果。例如:假设n是一个具有负值的int,则表达式
s.size()<n
的判断结果几乎是肯定是true。因为负值n会自动转化为一个比较大的无符号数。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: