String用法詳解

2021-08-18 06:20:32 字數 3985 閱讀 8008

#include    // 注意這裡不是string.h,string.h是c字串標頭檔案
這樣我們就宣告了乙個字串變數,但既然是乙個類,就有建構函式和析構函式。上面的宣告沒有傳入引數,所以就直接使用了string的預設的建構函式,這個函式所作的就是把str初始化為乙個空字串。string類的建構函式和析構函式如下:

1)  string s; // 生成乙個空字串s 

2) string s(str) ;// 拷貝建構函式生成str的複製品

3) string s(str, stridx); // 將字串str內"始於位置stridx"的部分當作字串的初值

4) string s(str, stridx, strlen) ;// 將字串str內"始於stridx且長度頂多strlen"的部分作為字串的初值

5) string s(cstr) ; // 將c字串(以null結束)作為s的初值

6) string s(chars, chars_len) ; // 將c字串前chars_len個字元作為字串s的初值。

7) string s(num, 『c』) ; // 生成乙個字串,包含num個c字元

8) string s(「value」); string s=「value」; // 將s初始化為乙個字串字面值副本

9) string s(begin, end); // 以區間begin/end(不包含end)內的字元作為字串s的初值

10) s.~string(); //銷毀所有字元,釋放記憶體

末尾新增了『\0』的字元陣列,c風格字串的末尾必須有乙個』\0』。

char ch[ ]=; //末尾顯式新增null

char ch[ ]=」c++」; //末尾自動新增null字元 若[ ]內數字大於實際字元數,將實際字元存入陣列,其餘位置全部為』\0』。 

1) s.empty(); // s為空串 返回true

2) s.size(); // 返回s中字元個數 型別應為:string:

:size_type

3) s[n]; // 從0開始相當於下標訪問

4) s1+s2; // 把s1和s2連線成新串 返回新串

5) s1=s2; // 把s1替換為s2的副本

6) v1==v2; // 比較,相等返回true

7) `!=, , >=` 慣有操作 任何乙個大寫字母都小於任意的小寫字母

string s1(「hello」);

string s3=s1+」world」; //合法操作

string s4=」hello」+」world」; //非法操作:兩個字串字面值相加

s.assign(str); // 不說 

s.assign(str,1,3); // 如果str是"iamangel" 就是把"ama"賦給字串

s.assign(str,2,string:

:npos); // 把字串str從索引值2開始到結尾賦給s

s.assign("gaint"); // 不說

s.assign("nico",5); // 把』n』 『i』 『c』 『o』 『\0』賦給字串

s.assign(5,'x'); // 把五個x賦給字串

s.substr(); // 返回s的全部內容 

s.substr(11); // 從索引11往後的子串

s.substr(5,6); // 從索引5開始6個字元

1)  >>操作符 // 用於從istream物件中讀入輸入

2) is >> s; // 從輸入流is中讀取乙個以空白字元分割的字串,寫入s

3) 《操作符 // 用於把輸出寫到ostream物件中

4) os << s; // 將s寫到輸出流os中

5) getline(is, s); // 從輸入流is中讀取一行字元,寫入s,直到遇到分行符或到了檔案尾

6) istream // 輸入流 提供輸入操作

7) ostream // 輸出流 提供輸出操作

1)  stringstream strm; // 建立自由的stringstream物件

2) stringstream strm(s); // 建立儲存s的副本的stringstream物件,s是stringstream型別

3) strm.str(); // 返回strm中儲存的string型別物件

4) strm.str(s); // 將string型別的s複製給strm 返回void

string result=」10000」;  

int n=0;

stream<>n; // n等於10000

string str = "hello world";

const

char *ch1 = str.c_str();

const

char *ch2 = str.data();

string str = "hello world";

int len = str.length();

char *data = new

char[len+1]; //這裡+1還是不+1需要注意

strcpy(data, str.c_str()); // const char *data = new char[len+1]; strcpy(data, str);

string str; 

const

char *pc = "hello world";

str = pc;

printf(「%s\n」, str); //此處出現錯誤的輸出

cout<

char ch  = "abcdefg";

string str(ch); //也可string str = ch;

char ch  = "abcdefg";

string str;

str = ch; //在原有基礎上新增可以用str += ch;

const

char *str = s.c_str();

string str = "hello world";

int len=str.length();

char ch[255]={};

for( int i=0;i

ch[i] = str[i];

ch[len+1] = '\0';

printf("%s\n", ch);

cout

string s;

strm/ 將s寫入到strm

strm>>s; // 從strm讀取串寫入s

strm.str(); // 返回strm中儲存的string型別物件

strm.str(s); // 將string型別的s複製給strm 返回void

char* cstr;  // 將c字元陣列轉換成流

string str(cstr);

stringstream ss(str);

string用法詳解

標準庫型別string,是可變長度的字串行,支援字串間的複製 比較 連線,還支援字串長度查詢和是否為空的判斷,並且可以訪問其中的單個字元。使用它需要標頭檔案。1.字串的連線 s1 s1 s2 將字串2接在字串1後面,後面可以是以雙引號引起來的非string型別的字串,但是必須至少存在乙個string...

string的常見用法詳解

摘自胡凡的 演算法筆記 僅作記錄用!前言 為了使程式設計者可以更方便地對字串進行操作,c 在stl中加入了string型別,對字串常用的需求功能進行了封裝。如果要使用string,需要新增string標頭檔案,即 include 除此之外,還需要新增using namespace std 一 str...

C 之string定義 用法詳解

string用法 1,定義 string str 初始化 可以直接給string型別的變數賦值 string str abcd 使用時,需要加上標頭檔案 include using namespace std 2,string中內容訪問 一般來說,可以直接像字串陣列一樣取訪問 示例 include ...