C++ 字符串連接

2023-03-20 15:55 更新

有趣的是,+操作符可以用于字符串,它執(zhí)行字符串連接操作。連接是指將字符串首尾相連。例如:

apstring fruit = "banana";
apstring bakedGood = " nut bread";
apstring dessert = fruit + bakedGood;
cout << dessert << endl;

這個(gè)程序的輸出是: banana nut bread。

不幸的是,+操作符不能應(yīng)用于原生C字符串上,所以不能編寫(xiě)這樣的語(yǔ)句:

apstring dessert = "banana" + " nut bread";

因?yàn)樗械牟僮鲾?shù)都是C字符串。但是只要其中一個(gè)是apstring,C++就會(huì)自動(dòng)的轉(zhuǎn)換另一個(gè)。將一個(gè)字符連接到一個(gè)apstring變量的頭或尾都是可以的。下面的例子中,我們會(huì)使用連接和字符算數(shù)來(lái)輸出按字母順序排列的序列。例如,在Robert McCloskey的《Make Way for Ducklings》一書(shū)中,小鴨子的名字分別是Jack,、Kack、Lack、Mack、Nack、Ouack、Pack和Quack.。這是一個(gè)按順序輸出這些名字的循環(huán):

apstring suffix = "ack";
char letter = ’J’;
while (letter <= ’Q’) {
  cout << letter + suffix << endl;
  letter++;
}

程序的輸出是:

Jack
Kack
Lack
Mack
Nack
Oack
Pack
Qack

當(dāng)然,這并不是很正確,因?yàn)槲移村e(cuò)了“Ouack”和“Quack”。作為練習(xí),請(qǐng)修改程序以修正這個(gè)錯(cuò)誤。

再次提醒,一定要小心使用字符串連接,在應(yīng)用apstring時(shí)可以使用,而在原生C字符串時(shí)不要使用。不幸的是,在C++中,像letter + "ack"這樣的表達(dá)式在語(yǔ)法上是正確的,雖然它會(huì)產(chǎn)生奇怪的結(jié)果,至少在我的開(kāi)發(fā)環(huán)境中是這樣。

以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)