一、字符串拼接
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)泽铛; //空格無影響尚辑,遇到換行符結(jié)束輸入,并把換行符保存在輸入序列中盔腔,所以如果連續(xù)使用杠茬,下一次輸入時(shí),看到的第一個(gè)字符便是換行符弛随,因此get()認(rèn)為已到達(dá)行尾瓢喉,而沒有發(fā)現(xiàn)任何可讀取的內(nèi)容,即無法正常輸入舀透;
解決方法:
(1)cin.get(name,Asize);
? ? cin.get();
(2) cin.get(name.Asize).get();
3.cin.getline(name,Asize);? //空格無影響栓票,遇到換行符結(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ū)殘余的回車符問題,需不需要用cin.get()把他讀走感挥,這個(gè)視下一次讀取的方式而定缩搅,例如使用cin.getine()或者類似C輸入的scanf(),put()等触幼,那么就需要在讀取之前清空殘余緩存硼瓣,如果使用cin<<則不需要,因?yàn)閏in是智能指針置谦,他將跳過緩沖區(qū)無效字符堂鲤,直到找到非空白字符為止。然后它將讀取字符媒峡,直到再次遇到空白為止瘟栖。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)定義能夠訪問名稱空間std沃呢,為此,可以將編譯指令using移到結(jié)構(gòu)定義之前拆挥;也可以將name的類型聲明為 std::string樟插。
九、結(jié)構(gòu)、結(jié)構(gòu)指針黄锤、結(jié)構(gòu)數(shù)組
十、關(guān)于new
//這個(gè)程序用brand數(shù)組總是做不出來食拜,因?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)致程序跳過本次循環(huán)的剩余部分负甸,繼續(xù)重新開始下一次循環(huán).在for循環(huán)中流强,continue使程序直接跳到更新表達(dá)式處,然后到測(cè)試表達(dá)式處呻待;而對(duì)于while循環(huán)來說打月,continue將使程序直接跳到測(cè)試表達(dá)式處,while循環(huán)體中位于continue之后的更新表達(dá)式都將被跳過.
break使程序跳出循環(huán)蚕捉,跳到循環(huán)外的下一條語(yǔ)句執(zhí)行.
十二.簡(jiǎn)單文件輸入/輸出
文件輸出:(創(chuàng)建文件并寫入內(nèi)容)
包含頭文件fstream,頭文件定義了一個(gè)用于處理輸出的ofstream類奏篙;
聲明一個(gè)或多個(gè)ofstream對(duì)象(變量),并根據(jù)命名規(guī)則自行命名迫淹;
指明名稱空間秘通,必須使用編譯指令using或者前綴std::;
將ofstream對(duì)象與文件關(guān)聯(lián)起來敛熬,方法之一為open()方法肺稀;
使用完文件之后,要使用方法close()將其關(guān)閉应民;
ofstream對(duì)象可以使用cout可使用的任何方法话原,可以像使用cout那樣使用它,將內(nèi)容寫入到關(guān)聯(lián)的文件中.
文件輸入:(讀取已存在文件的內(nèi)容)
包含頭文件fstream,頭文件定義了一個(gè)用于處理輸入的ifstream類诲锹;
聲明一個(gè)或多個(gè)ifstream對(duì)象(變量)繁仁,并根據(jù)命名規(guī)則自行命名;
指明名稱空間辕狰,必須使用編譯指令using或者前綴std::改备;
將ifstream對(duì)象與文件關(guān)聯(lián)起來,方法之一為open()方法蔓倍;
使用完文件之后悬钳,要使用方法close()將其關(guān)閉;
ifstream對(duì)象可以使用cin可使用的任何方法偶翅,可以像使用cin那樣使用它默勾,可以用ifstream對(duì)象和get()方法來讀取一個(gè)字符,和getline()來讀取一行字符.可以結(jié)合使用ifstream和eof(),fail()等方法來判別輸入是否成功.
十三.函數(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)度相等的值.