C 學習筆記

2022-08-05 14:45:11 字數 2250 閱讀 2724

//將字串s全變為大寫

for(char &i : s)

範圍for語句是c++11標準,用g++編譯時,需要加上-std=c++11,不然會提示range-based 『for』 loops are not allowed in c++98 mode範圍for迴圈相對於傳統for迴圈和while迴圈的優點是,我們無需關心迴圈邊界條件,防止越界訪問。

string temp;

while(cin >> temp)

用cin輸入字串,cin會忽略輸入流中的空白(空格符、換行符、製表符等),將連續的字元提取出來。例如輸入分隔開的」hello world!」,實際會進入兩次while,temp先是」hello」,再是」world!」

string temp;

while(getline(cin, temp)

用getline()輸入字串,可保留輸入時的空白符。getline()在遇到換行符時會返回,返回時,不會將換行符儲存到字串中。

//錯誤,應該為char str[2] = "a";

char

str[1] = "a";

//錯誤,字元陣列未顯式初始化

char

str[5];

cout << str

<< endl;

//錯誤,不允許拷貝初始化

char a = b;

用字串字面值初始化字元陣列。上述語句會編譯報錯error: initializer-string for array of chars is too long"a"是字串,編譯器會在字串後面新增乙個空字串'\0',因此字串字面值的實際長度要比它的內容多1,陣列中包含\0.

字元陣列未顯式初始化時,裡面的內容是未定義的,我們不知道裡面是什麼內容。

陣列不允許拷貝初始化。

//正確,str不包含\0

string str = "a";

//正確,string未顯式初始化,預設初始化為空串

string str;

cout

<< str /正確,string支援拷貝初始化

string a = b;

用字串字面值初始化string物件。字串字面值包含a\0,初始化時,除了最後的空子符外,其他的字元都被拷貝到新建立的string物件中,即string物件中不包含\0

string物件未顯式初始化時,執行預設初始化,str是乙個空字串。

string物件支援拷貝初始化。

//string --> char*

const

char *str = s.c_str();//str必須為const

//char --> string

char str = "a";

string s = str;//對於string s = "a",我們可以將字串字面值"a"替換為以空字元結尾的str

//int --> vector

int arr = ;

vector

vec(begin(arr), end(arr));

//vector--> int,for迴圈

vector

vec;

int arr[3];

for(int *i = begin(arr); i != end(arr); i++)

*i = vector[i-begin(arr)];

1.迭代器end()指向尾元素的下乙個元素,這樣當begin!=end時,說明容器中還有內容。

2.迭代器的判斷用!=而不用

//accumulate的第三個引數如果是0,那麼返回的是int型2;如果引數是0.0,那麼返回的是double型2.1

vector

vec;

auto res = accumulate(vec.cbegin(), vec.cend(), 0.0)

C 學習筆記( )

一 語法 迴圈 foreach 型別識別符號 in 表示式 code 用法 例子int temp foreach int num in temp 每次從temp取乙個元素賦給num直至取完 console.writeline n num 每行顯示乙個元素 執行結果 c 中唯讀 只寫控制 class ...

C 學習筆記

1.函式特徵 有函式頭和函式體 接受乙個引數 返回乙個值 需要乙個原型。2.c 命名規則 在名稱中只能使用字母字元 數字和下劃線 名稱的第乙個字元不能是數字 區分大寫字母和小寫字母 不能將c 關鍵字用作名稱 以兩個下劃線或下劃線和大寫字母打頭的名稱被保留給實現 編譯器及其使用的資源 使用,以乙個下劃...

c 學習筆記

屬性 屬性開頭字母大寫 屬性可以判斷輸入的非法值 屬性本身不儲存值 依靠字段 索引器 using system using system.collections.generic using system.linq using system.text namespace b try catch exc...