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