第三章(一)string型別

2021-07-22 18:08:07 字數 1979 閱讀 4764

(一)在使用之前是需要宣告的。使用標準庫型別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...