C 學習筆記 字串處理

2021-10-01 11:22:27 字數 3244 閱讀 1597

2.3 常用字串函式

2.4 原始字串字面量

c++提供了兩種型別的字串表示形式:

-c風格字串

-c++引入的string類型別

字串實際上是使用null字元』\0』終止的一維字元陣列。由於在陣列的末尾儲存了空字元,因此字元陣列的大小比"hello"的字元數多乙個。但是在定義字元陣列時,不需要把null字元放在字串常量的末尾。c++編譯器會在初始化陣列時,自動把』\0』放在字串的末尾。

上面兩個字元陣列的內容是一樣的。雖然第乙個字元陣列在定義時是6個位元組,但是strlen函式在計算字串長度時會忽略』\0』字元,因此strlen返回的值也是5。sizeof函式卻不會忽略字元陣列後面的結束字元,它返回則是6。

c++提供了乙個得到極大改善的字串概念,並作為標準庫的一部分提供了這個字串的實現。在c++中,std::string是乙個類(實際上是basic string模板的乙個例項),這個類支援中提供的許多功能,還自動管理記憶體分配。string類在std命名空間的標頭檔案中定義。

字串字面量通常解釋為const char*。使用使用者定義的標準字面量』s』可以把字串字面量解釋為std::string.例如:

#include

using

namespace std;

intmain()

if(typeid

(str2)

==typeid

(string)

)}

結果為:str1的型別是:const char*

str2的型別是:string

int stoi(const  string&  str, size_t  *idx = 0,int  base = 10);
stoi函式將n進製字串轉為十進位制,第二個引數是字串起始位置,第三個引數表示n進製。也可以直接用過載的int stoi(const strin& str),預設字串為十進位制,起始位置為0。

#include

using

namespace std;

intmain()

結果為轉十進位制可以用to_string,但是低版本的編譯器可能不支援

#include

using

namespace std;

intmain()

}

在使用stringstream的時候需要引入標頭檔案sstream,即#include.

函式功能

將字串新增到字串的末尾

at返回字串中的指定位置處的元素的引用

c_str

將字串的內容轉換為c樣式空終止字串

data

轉換為字元陣列的字串內容

empty

測試是否該字串包含字元

erase

從指定位置字串中一處元素或某個範圍的元素

find

與指定的字串行匹配子字串的第乙個匹配項的向前搜尋字串

find_first_not_of

搜尋與指定任何字元元素匹配的第乙個字元的字串

find_first_of

搜尋指定任何的字串元素相匹配的第乙個字元的字串

rfind

向後方向中的首次出現的與指定的字串行匹配的子字串搜尋字串

pop_back

清除該字串的最後乙個元素

push_back

該字串的末尾新增乙個元素

insert

將某個原色的數目或某個範圍的元素插入到指定位置的字串

length

返回字串的元素的當前數目

replace

替換指定的字元或從其他趨於或字串或c字串複製的字元在字串中位於指定位置處的元素

substr

從指定位置的字串開頭的複製的子字串的最大字元數

原始字串字面量是可以橫跨多行**的字串字面量,不需要轉義嵌入的雙引號,像\t和\1!這種轉義序列的方式處理,而是按照普通文字的方式處理。例如:
string str =

"hello \"world\"!";//error

string str =

r"(hello "world"!)"

;//right

可以跨多行**。例如:

string str = "line 1

line 2 with \t";

// error!

string str =

r"(line 1

line 2 with \t)"

;//right

ABAP學習筆記 處理字串

color indigo size medium 一 移動字段內容 1 按給定位置數移動字串 語法 shift by places 將字段移動個位置,如果省略by places,則將解釋為乙個位置 如果是0或負數,則保持不變 如果超過長度,則用空格填充。可為變數。可以為 left 向左移動個位置,右...

C 學習筆記 字串

字串 char型別的唯讀陣列 1 常用方法 length 獲得字串中字元的個數 toupper 將字串轉換為大寫 tolower 將字串轉換為小寫 equals 比較兩個字串是否相同,equals string a,stringcomparison.ordinalignorecase 比較時可以忽略...

c 字串學習筆記

include include using namespace std string str1 生成空字串 cin str1 cout str1 string str2 hello 生成並初始化 cout str2 string str3 str2 hello cout str3 string st...