標籤:插入 ace 判斷字串 轉換 類的建構函式 pac cout 添加 clu
string類string類
標頭檔:#include<string>
名稱空間:using namespace std;
初始化:
string Str;
String類的建構函式和解構函式如下:
- string s(str) //拷貝建構函式 產生str的複製品
- string s(str,stridx) //將字串str內“始於位置stridx”的部分當作字串的初值
- string s(str,stridx,strlen) //將字串str內“始於stridx且長度頂多strlen”的部分作為字串的初值
- string s(cstr) //將C字串作為s的初值
- string s(chars,chars_len) //將C字串前chars_len個字元作為字串s的初值。
- string s(num,c) //產生一個字串,包含num個c字元
- string s(beg,end) //以區間beg;end(不包含end)內的字元作為字串s的初值
string類操作
- swap() //交換兩個字串的內容
- +=,append(),push_back() //在尾部添加字元
- insert() //插入字元
- erase() //刪除字元
- replace() //替換字元
- empty() //判斷字串是否為空白
- [ ], at() //存取單一字元
- >>,getline() //從stream讀取某值
- copy() //將某值賦值為一個C_string
- c_str() //將內容以C_string返回
- data() //將內容以字元數組形式返回
- substr() //返回某個子字串
string類與字串數組的轉換
C++提供的由C++字串得到對應的C_string的方法是使用data()、c_str()和copy(),其中,data()以字元數組的形式返回字串內容,但並不添加’\0’。c_str()返回一個以‘\0’結尾的字元數組,而copy()則把字串的內容複寫或寫入既有的c_string或字元數組內。C++字串並不以’\0’結尾。
將string類型轉換為字元數組
#include<cstdlib>#include<iostream>#include<cstdio>#include<string>#include<cstring>using namespace std;int main(){ string s("123456.1"); char arr[10]; cout<<s.data()<<endl;//1.返回不帶‘\0‘ 的字元數組 123456.1 cout<<s.c_str()<<endl;//2.返回帶 ‘\0‘的字元數組 123456.1 s.copy(arr, 8);//3.回不帶‘\0‘ 的字元數組 arr[8] = ‘\0‘;//不帶 ‘\0‘ 輸出堆棧中的垃圾 cout<<arr<<endl;//123456.1 //轉數字 printf("%f\n",atof(s.data())); //123456.100000 printf("%f\n",atof(s.c_str()));//同上 printf("%f\n",atof(arr));//同上 cout<<strlen(arr)<<endl;//8 cout<<strlen(s.data())<<endl;//同上 cout<<strlen(s.c_str())<<endl;//同上 return 0;}
字元數組轉化成string類型
char ch [] = "ABCDEFG";
string str(ch);//也可string str = ch;
或者
char ch [] = "ABCDEFG";
string str;
str = ch;//在原有基礎上添加可以用str += ch;
提取子串:
substr(),形式如下:
s.substr();//返回s的全部內容
s.substr(11);//從索引11往後的子串
s.substr(5,6);//從索引5開始6個字元
把兩個字串結合起來的函數是+。
C++string類整理