1. 程式人生 > >11 標準庫型別 string 初識

11 標準庫型別 string 初識

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;
}