首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> C++ >> C++ 入門

C++ Primer 學習筆記:std::string 核心操作完全解析

     編輯:C++ 入門

C++ Primer 學習筆記:std::string 核心操作完全解析

C++ 標準庫 <string> 提供了功能豐富的 std::string 類,徹底解決 C 風格字符串操作繁瑣、不安全的問題。本文涵蓋構造、輸入輸出、常用操作、大小比較及典型陷阱。

1. 使用前置條件

#include <string>
using std::string;  // 或 using namespace std;
string str;         // 默認構造,空字符串

2. 多種初始化方式

語法說明
string s;默認構造,空串
string s = "abc";拷貝初始化
string s("abc");直接初始化
string s2(s1);用 string 對象初始化
string s(5, 'c');5 個 'c',即 "ccccc"

3. 輸入輸出操作

  • cin >> str:跳過前導空白,讀至下一空白 (不含換行)。
  • getline(cin, str):讀取整行 (含空格),丟棄末尾換行符。注意:若前序有 cin >> 殘留換行符,需先 cin.ignore()。
  • cout << str << endl:輸出字符串。

4. 核心成員函數

str.size()      // 長度 (不含 '\0')
str.empty()     // 是否為空
str[n]          // 下標訪問 (可作左值修改)
str1 + str2     // 拼接 (至少一邊為 string)
str1 == str2    // 字典序比較 (區分大小寫,'A' < 'a')
str1 < str2     // 同前

5. 重要陷阱

  • sizeof(str) 返回 string 對象大小 (通常 32/64 位系統為 32/40 字節),非 字符串長度。請用 str.size()。
  • str[0] 對空串未定義行為,雖然部分實現返回 '\0',但標準不保證。
  • "abc" + "def" 錯誤:字面值指針不可相加,需 string("abc") + "def"。

6. 習題精選

  1. 讀入多行拼接:getline 循環 + s += line + '\n'。
  2. 讀入單詞拼接:cin >> word 循環 + s += word + ' '。
  3. 比較長度與字典序:結合 size() 與關係運算符。

7. 代碼演示

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

int main() {
    string s1, s2("hello");
    s1 = "world";
    cout << s1 + " " + s2 << endl;  // world hello
    cout << "size: " << s1.size() << ", sizeof: " << sizeof(s1) << endl;
    s1[0] = 'W';
    cout << s1 << endl;  // World
    return 0;
}
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved