1. 定义和初始化 string 对象
#include <iostream>
using namespace std;
using std::string;
/**
* 标准库类型 string
*/
int main() {
string s1; // 默认初始化
string s2 = s1; // s2 是 s1 的副本
string s3 = "hello"; // s3 是该字符串的副本
string s4(3, 'c'); // s4内容是ccc
return 0;
}
2.直接初始化和拷贝初始化
- 使用等号是拷贝初始化,编译器把等号右侧初始值拷贝到新创建的对象中去
- 不使用等号是直接初始化
using std::string;
/**
* 标准库类型 string
*/
int main() {
string s1 = "hello"; // s1 拷贝初始化
string s2 ("hello"); // s2 直接初始化
return 0;
}
3.读写 string 对象
示例
#include <iostream>
using std::string;
using std::cin;
using std::cout;
using std::endl;
/**
* 标准库类型 string
*/
int main() {
string s;
cin >> s;
cout << "printf: " << s << endl;
return 0;
}
运行结果
hello world
printf: hello
在执行 string 读取操作是。从第一个真正的字符串开始读取,遇到空白停止,故值输出 hello,我们可以使用getLine获得一行
#include <iostream>
using std::string;
using std::cin;
using std::cout;
using std::endl;
/**
* 标准库类型 string
*/
int main() {
string line;
while (getline(cin, line)) { // 获取一行字符串
if (!line.empty()) { // 判断是否为空
cout << "Getline = " << line << ", lineSize = " << line.size() << endl;// 获取字符串大小
}
}
return 0;
}
运行结果
Hello world
Getline = Hello world, lineSize = 11
asfd
Getline = asfd, lineSize = 4
nihao a daer
Getline = nihao a daer, lineSize = 12
4. string 对象的比较
使用 == 进行比较
#include <iostream>
using std::string;
using std::cin;
using std::cout;
using std::endl;
/**
* 标准库类型 string
*/
int main() {
string s1 = "a";
string s2 = "A";
if(s1 == s2) {
cout<<"True"<<endl;
} else {
cout<<"False"<<endl;
}
return 0;
}