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...