c 自學筆記 day05

2021-08-18 21:02:54 字數 2056 閱讀 3510

cin.getline(char ,int)

如果鍵盤輸入的字元個數大於函式的第二個引數,剩餘的字元會留在快取區中,在這種情況下cin,getline(cahr ,int)會設定失效位,程式後續的讀取快取區動作將被關閉。

可以通過cin.clear()函式來恢復。

string型別:

在c++中,把字串認為是一種型別,可以由關鍵字string宣告。

雖然它看起來和基礎型別非常相似,但是它是一種類,建立的是字串物件。

例如:string str = "abc";

要使用string型別,需要包含string標頭檔案。

#include

字串的初始化:

在c語言中對字串的初始化有兩種:

char str = ;

char str = "abc";

在c++中,稱上述的字串陣列為,c風格的字串,在c++也保留了字元陣列

char str = ;

char str = "abc";

string str = "abc";

string str;

字串操作:

在c語言中,對字串的所有操作,都是通過標準函式完成的:

strcat(char ,cahr ),將第二個字串追加到第乙個字串,但是這種情況,可能會因為追加之後的字串的長度超出了第乙個字元陣列的範圍,會寫到字元陣列記憶體範圍外,很有可能會破壞記憶體中的其他資料導致程式結束。

strcpy(char ,cahr),將第二個字串複製給第乙個字串,和上述函式存在一樣的潛在危險。

在c++中,盡量使用string型別,來對字串操作,它是大小可變的字串

sting str1,str2;

str1 += str2;追加操作,不用擔心是否溢位

str1 = str2;複製操作,不用擔心是否溢位。

總的來說,string對字串的操作,比字元陣列方便和安全。

字串的輸入/輸出:

在c++中,所有的基本型別都可以使用智慧型物件 cin cout來輸入和輸出。

string型別也可以借助它們來輸出和輸入,

但是,string和基本型別的cin/cout的實現不同。osteram類設計之初,是沒有考慮到string型別的,但是string型別也能用cin/cout能用,是因為友元類,這個後續會仔細解讀。

還可以使用getline(char/string,int),來獲取一行的字串。

其他形式的字串字面值:

wchar_t str = l"good morning";

char16_t str = u"good morning";

char32_t str = u"good morning";

c++11中有一種新的型別,原始字串:

cout << r"(a,b,c,"\n")" << endl;

輸出結果是:

a,b,c,"\n"

它沒有轉義字元,在"( 和 )"中間的所有內容都可以輸出。"( 和 )"稱為邊界

如果需要輸出括號,那麼就要自定義邊界,"和( 之間是可以新增其他字元的作為自定義邊界的,但是一定要兩邊對稱。

例如:"+(      )+";

結構型別:

結構體內是由使用者使用多種不同的資料型別作為基礎定義的新型別。

宣告如下:

struct inflatable;

如果大括號內為空,則所有的元素都會被初始化為0;

呼叫結構體內部變數的時候,可以使用成員運算子 . 

cout << lx.name;

這裡的 lx.name 是標準的字元組型別,可以進行字元組型別的任何操作。

一般來講,會把結構體型別定義在所有函式之外,這樣,所有的函式都是可以使用的。c++也建議這麼做

但是變數一般我們會宣告在函式內部。

兩個同型別的結構體變數,可以通過 "=" 進行賦值,

結構體可以作為函式的返回值,

可以建立元素為結構的陣列

陣列結構體的初始化,可以像二維陣列一樣。

結構體允許占用特定位數的成員,這些成員被稱為位欄位,

經常用於對硬體暫存器的賦值。

C 學習筆記 day05

1 變數的儲存 1 記憶體是一塊空間,把其中的每個位元組做了編號,為了以後計算機能通過編號找到資料 2 編址方式 絕對編址 在整個程式中使用 相對編址 位元組相對於邏輯0偏移量,在程序中使用 4 儲存位址 指標 儲存變數的位址 指標的型別由將要儲存的位址的變數型別決定 int 只能儲存int變數的位...

Python學習筆記day05

高階函式 課後練習 不可變的資料型別一定可雜湊 hash 內建函式可以判斷某個型別是否可雜湊 s1 s2 s3 s4 print s1,s2,s3的交集 s1.intersection s2,s3 print s1,s2,s3的交集 s1 s2 s3 print s1,s2,s3的並集 s1.uni...

IOS之c語言筆記 day05

aeb a 10的b次方 int main 判斷乙個數的奇偶性 a 2 0 b 使用位與 運算子判斷 可以使用這個來精簡if.else語句 true 1 false 0 最後一位是1奇數,0 偶數 a 1 1 奇數 a 1 0 偶數 取出最後一位的值 1 int main else 精簡 有返回值得...