11 標準庫型別 string 初識
阿新 • • 發佈:2019-02-10
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;
}