2019-02-21

一、字符串拼接

1.c風(fēng)格拼接字符串

#include <cstring>

strcat(charr1,charr2);? //把charr2中的字符串拼接到charr1中的字符串中,并保存在charr1中

string(charr,"xxxxx");

2.直接cout輸出 cout << "xxx" << "xxx";

3.str對(duì)象實(shí)現(xiàn)字符串拼接:str = str1 + ", " + str2; //僅僅舉例



二、輸入行

1.cin >> name;? //只能輸入一個(gè)單詞,遇到空格、換行符就結(jié)束,換行符會(huì)保存在輸入序列中。此處的name可以是變量,數(shù)組,str對(duì)象。

2.cin.get(name,Asize); //空格無(wú)影響,遇到換行符結(jié)束輸入,并把換行符保存在輸入序列中,所以如果連續(xù)使用,下一次輸入時(shí),看到的第一個(gè)字符便是換行符,因此get()認(rèn)為已到達(dá)行尾,而沒(méi)有發(fā)現(xiàn)任何可讀取的內(nèi)容,即無(wú)法正常輸入;

解決方法:

(1)cin.get(name,Asize);

? ? cin.get();

(2) cin.get(name.Asize).get();


3.cin.getline(name,Asize);? //空格無(wú)影響,遇到換行符結(jié)束輸入,且把換行符保存為空字符,不會(huì)影響下一次的輸入;

局限性是2和3方法都只能輸入行到“數(shù)組”!


4.輸入行到str對(duì)象

getline(cin,str1);? //這里的getline()不是istream的一個(gè)類方法,而是string類的一個(gè)友元函數(shù),把cin作為參數(shù),將一行輸入讀取到string對(duì)象中。


5.為何連續(xù)使用兩次cin不會(huì)出錯(cuò),而使用cin后再使用cin.getline()會(huì)出錯(cuò)?

關(guān)于緩沖區(qū)殘余的回車符問(wèn)題,需不需要用cin.get()把他讀走,這個(gè)視下一次讀取的方式而定,例如使用cin.getine()或者類似C輸入的scanf(),put()等,那么就需要在讀取之前清空殘余緩存,如果使用cin<<則不需要,因?yàn)閏in是智能指針,他將跳過(guò)緩沖區(qū)無(wú)效字符,直到找到非空白字符為止。然后它將讀取字符,直到再次遇到空白為止。cin >> a[0] >> a[1] >> a[2] 這樣甚至可以連續(xù)輸入三個(gè)單詞,每次enter會(huì)自動(dòng)換行等待再次輸入。


三、求長(zhǎng)度

1.


四、str對(duì)象與數(shù)組的用法異同點(diǎn)


五、指針


六、一些“潛規(guī)則”

1.設(shè)置數(shù)組長(zhǎng)度Arsize時(shí),一般講其定義為一個(gè)整型常量,這樣便于以后修改長(zhǎng)度。


七、string和cstring的一些用法區(qū)別歸納


八、關(guān)于 using namespace std

1.結(jié)構(gòu)可以將string類對(duì)象作為成員嗎?

能!但是,一定要讓結(jié)構(gòu)定義能夠訪問(wèn)名稱空間std,為此,可以將編譯指令using移到結(jié)構(gòu)定義之前;也可以將name的類型聲明為 std::string。


九、結(jié)構(gòu)、結(jié)構(gòu)指針、結(jié)構(gòu)數(shù)組


十、關(guān)于new

//這個(gè)程序用brand數(shù)組總是做不出來(lái),因?yàn)槎x的定長(zhǎng)的數(shù)組和變化長(zhǎng)度的賦值字符串在new分配內(nèi)存時(shí)是矛盾的

//會(huì)報(bào)錯(cuò),incompatible types in assignment of ‘const char [4]’ to ‘char [20]’

#include <iostream>

#include <string>

using namespace std;

const int Arsize = 20;

struct CandyBar

{

string brand;

float weight;

int calorie;

};

int main()

{

CandyBar * snack = new CandyBar[3];//snack本質(zhì)上是個(gè)數(shù)組,但是new創(chuàng)建是針對(duì)指針的

snack[0].brand = "red";

snack[0].weight = 50;

snack[0].calorie = 10;

snack[1].brand = "green";

snack[1].weight = 51;

snack[1].calorie = 11;

snack[2].brand = "blue";

snack[2].weight = 52;

snack[2].calorie = 12;

for(int i=0;i<3;++i)

? ? ? ? {

? cout << "Brand: " << snack[i].brand << "; "

? ? ? ? ? ? ? ? ? ? << "Weight: " << snack[i].weight << "; "

? ? ? ? ? ? ? ? ? ? << "calorie: " << snack[i].calorie << "."

? ? ? << endl;

}

return 0;

}


十一.continue 和 break的區(qū)別

continue導(dǎo)致程序跳過(guò)本次循環(huán)的剩余部分,繼續(xù)重新開(kāi)始下一次循環(huán).在for循環(huán)中,continue使程序直接跳到更新表達(dá)式處,然后到測(cè)試表達(dá)式處;而對(duì)于while循環(huán)來(lái)說(shuō),continue將使程序直接跳到測(cè)試表達(dá)式處,while循環(huán)體中位于continue之后的更新表達(dá)式都將被跳過(guò).

break使程序跳出循環(huán),跳到循環(huán)外的下一條語(yǔ)句執(zhí)行.



十二.簡(jiǎn)單文件輸入/輸出

文件輸出:(創(chuàng)建文件并寫(xiě)入內(nèi)容)

包含頭文件fstream,頭文件定義了一個(gè)用于處理輸出的ofstream類;

聲明一個(gè)或多個(gè)ofstream對(duì)象(變量),并根據(jù)命名規(guī)則自行命名;

指明名稱空間,必須使用編譯指令using或者前綴std::;

將ofstream對(duì)象與文件關(guān)聯(lián)起來(lái),方法之一為open()方法;

使用完文件之后,要使用方法close()將其關(guān)閉;

ofstream對(duì)象可以使用cout可使用的任何方法,可以像使用cout那樣使用它,將內(nèi)容寫(xiě)入到關(guān)聯(lián)的文件中.


文件輸入:(讀取已存在文件的內(nèi)容)

包含頭文件fstream,頭文件定義了一個(gè)用于處理輸入的ifstream類;

聲明一個(gè)或多個(gè)ifstream對(duì)象(變量),并根據(jù)命名規(guī)則自行命名;

指明名稱空間,必須使用編譯指令using或者前綴std::;

將ifstream對(duì)象與文件關(guān)聯(lián)起來(lái),方法之一為open()方法;

使用完文件之后,要使用方法close()將其關(guān)閉;

ifstream對(duì)象可以使用cin可使用的任何方法,可以像使用cin那樣使用它,可以用ifstream對(duì)象和get()方法來(lái)讀取一個(gè)字符,和getline()來(lái)讀取一行字符.可以結(jié)合使用ifstream和eof(),fail()等方法來(lái)判別輸入是否成功.

十三.函數(shù)

(1)庫(kù)函數(shù)是已經(jīng)定義和編譯好的函數(shù),可以同時(shí)使用標(biāo)準(zhǔn)庫(kù)頭文件提供其原型,因此只需要準(zhǔn)確地調(diào)用這種函數(shù)即可.

(2)創(chuàng)建自己的函數(shù)時(shí),必須自行處理:定義,提供原型和調(diào)用.原型描述了函數(shù)到編譯器的接口,它將函數(shù)返回值的類型以及參數(shù)的類型和數(shù)量告訴編譯器.有返回值的被調(diào)用函數(shù)會(huì)把返回值放置在指定的位置,可能是CPU寄存器,也可能是內(nèi)存中,然后調(diào)用函數(shù)將從這個(gè)位置取得返回值.由于原型指出了返回值的類型,所以編譯器知道應(yīng)該檢索多少個(gè)字節(jié)以及如何解釋它們.

(3)在函數(shù)中修改形參的值不會(huì)影響調(diào)用程序中的數(shù)據(jù).

十四.?dāng)?shù)組和指針恒等式

arr[i]==*(ar+i);

&arr[i]==ar+i;

將指針或數(shù)組名加1,實(shí)際上是加上了一個(gè)與指針指向的類型的長(zhǎng)度相等的值.

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容