(一)在使用之前是需要宣告的。使用標準庫型別string
#includeusing std::string;
或者using namespace std;
(二)幾種初始化
string s1;//empty string on defaulty
string s2(s1);
string s3="hiya"
string s4(10,'c');cccccccc
(三)string物件上的操作
os<
is>>s 從is中讀取字串並返回流
getline(is,s)讀取一行,返回流
s.empty()判斷是否是空
s.size()返回s中字元個數,注意返回的型別是unsigned,不能夠與int型別來比較。有符號和無符號的比較是需要轉換的,而且答案都是令人想不到的。哈哈
s[n] 返回s中第n個字元的引用,位置n從0記起
s1+s2;返回s1和s2鏈結後的結果
s1=s2;直接的賦值操作哦
s1==s2;判斷是否完全相等
<,>,<=,>=。都是返回第乙個不同的大小比較值
(四)字面值和string物件的相加
+號的兩邊都必須是至少有乙個string物件
string s4=s1+",";
string s5="hello"+「《」;
string s6=s1+","+"wsf";對的,相當於(s1+",")+"sfh";這個前面的結果是乙個物件來的
string s7="heello"+"hfh"+s2;前面都是字面值,所一錯誤
切忌:字串字面值與string是不同型別的,單純的字面值是無法相加的。
(五)
cctype標頭檔案的函式
isalnum(c)
假如c是字母或數字,則為true
isalpah(c)
假如c是字母,則為true
iscntrl(c)
假如c是控制字元,則為true
isdigit(c)
假如c是數字,則為true
isgraph(c)
假如c不是空格,則為true
islower(c)
假如c是小寫字母,則為true
isprint(c)
假如c是可列印的字元,則為true
ispunct(c)
假如c是標點符號,則為true
isspace(c)
假如c是空白字元,則為true
isupper(c)
假如c是大寫字母,則為true
isxdigit(c)
假如c是十六進製制數,則為true
tolower(c)
假如c是大寫字母,則返回小寫字母形式,否則返回c。
toupper(c)
假如c是小寫字母,則返回大些字母形式,否則返回c。
(六)使用for迴圈來遍歷;
string str("some string");
for(auto c:str)
cout << c << endl;
for(auto &c:s)
c=toupper(c);
cout 《如果不用這個引用的話,c只是s中字元的乙份複製的值,它的改變並不會影響s原本的字元。
注意以上的編譯都是需要在編譯中新增-std c++11 這個編譯的語句,可能這個是c++11的新特性吧
第三章 標準庫型別
幾種初始化string類的方法 string型別的輸入操作符 int main void return 0 int main void return 0 bitset 32 bitvec 給出的長度必須是常量表示式,而且是整型。bitsetb u b是unsigned long型u的乙個副本 bit...
第三章 標準庫型別
3.1 命名空間的using宣告 通常,在標頭檔案中只定義卻是需要的東西,如只用到std cout,就應該只定義這個,不要把所有的都給定義出來。3.2 標準庫string型別 1 string物件的定義和初始化 為了與c相容,字串字面值與標準庫string型別不是同一種型別,程式設計時一定要注意區分...
第三章 變數和型別
constant表示限定為常量 null 1 還是null 所以在運算時要注意 varchar2有兩個子型別 string和varchar 作用完全相同 nchar 和nvarchar2是char和varhcar2的unicode版本 char到nchar轉換是安全的反之可能會引起資料丟失 數字用n...