第33課 C 中的字串類

2021-10-03 02:53:25 字數 2272 閱讀 9686

本文內容來自於對狄泰學院 唐佐林老師 c++深度解析 課程的學習總結

標準庫中的字串類

c++ 語言直接支援 c 語言的所有概念

c++ 語言中 沒有原生的字串型別

c++ 標準庫提供了 string 型別

string 直接支援 字串連線

string 直接支援 字串的大小比較

string 直接支援 子串查詢和提取

string 直接支援 字串的插入和替換

字串 與 數字 的轉換

sstream - 相關標頭檔案

istringstream - 字串輸入流

ostringstream - 字串輸出流

使用方法

string -> 數字

istringstream iss(「123.45」);

double num;

iss >> num;

數字 -> string

ostringstream oss;

oss << 543.21;

string s = oss.str();

實驗程式

使用字串流類sstream實現字串和數字之間的轉換

#include

#include

#include

using

namespace std;

#define to_number(s, n) (istringstream(s) >> n)

#define to_string(n) (((ostringstream&)(ostringstream() << n)).str())

void

to_number

(string s,

int& num)

string to_string

(int num)

intmain()

執行結果

實驗結果:void to_number(string s, int& num) 完成了字串向整形數轉換

string to_string(int num) 完成了整形數向字串的轉換

to_number 巨集完成了字串向任意型別數值的轉換

to_string 巨集完成了任意型別數值向字串的轉換

面試題分析

編寫**實現:字串迴圈右移,如:「abcdefg」 迴圈右移 3 位得到 「efgabcd」

關於 string 類中的兩個成員函式

length: 用於獲取字串的長度

substr(startpos): 從 startpos 位置開始擷取字串

substr(startpos, length): 從 startpos位置開始擷取 length 長度的字串

實驗**

#include

#include

#include

using

namespace std;

string chr_right_move

(string s,

int n)

string operator

>>

(string s,

int n)

intmain()

執行結果

實驗結果:chr_right_move 函式實現了將字串右移的功能,同樣過載 >> 操作符函式也同樣實現了字串右移功能,使用更方便。

應用開發中 大多數的情況 都在進行 字串處理

c++ 中 沒有直接支援 原生的字串型別

標準庫中通過string 類支援字串的概念

string 類支援 字串 和數字 的相互轉換

string 類的應用使得問題的求解變得簡單

C 中的字串類

1 c語言不支援真正意義上的字串 2 c語言用字元陣列和一組實現字串操作 3 c語言不支援自定義型別,因此無法獲得字元型別 1 從c到c 的進化過程引入了自定義型別 2 從c 中可以通過類完成字串型別的定義 問題 c 中的原生型別系統是否包含字串型別?1 c 語言直接支援c語言的所有概念 2 c 語...

C 中的字串類

歷史遺留問題 c語言不支援真正意義上的字串 c語言用字元陣列和一組函式實現字串操作 c語言不支援自定義型別,因此無法獲得字串型別 解決方案 從c到c 的進化過程引入了自定義型別 在c 中可以通過類完成字串型別的定義 include include using namespace std void s...

C 中的字串類(string類)

1.字串搜尋 string s abc科學 int i s.indexof 科 注意 1 索引從0開始,如果沒有找到則返回值為 1 2 c 中,ascii和漢字都是用2位元組表示 2.字串比較 string s1 abc string s2 abc int n string.compare s1,s...