7.11 字符串连接

最后更新于:2022-04-01 06:21:18

有趣的是,+操作符可以用于字符串,它执行字符串连接操作。**连接**是指将字符串首尾相连。例如: ~~~ apstring fruit = "banana"; apstring bakedGood = " nut bread"; apstring dessert = fruit + bakedGood; cout << dessert << endl; ~~~ 这个程序的输出是: banana nut bread。 不幸的是,+操作符不能应用于原生C字符串上,所以不能编写这样的语句: ~~~ apstring dessert = "banana" + " nut bread"; ~~~ 因为所有的操作数都是C字符串。但是只要其中一个是apstring,C++就会自动的转换另一个。将一个字符连接到一个apstring变量的头或尾都是可以的。下面的例子中,我们会使用连接和字符算数来输出按字母顺序排列的序列。例如,在Robert McCloskey的《Make Way for Ducklings》一书中,小鸭子的名字分别是Jack,、Kack、Lack、Mack、Nack、Ouack、Pack和Quack.。这是一个按顺序输出这些名字的循环: ~~~ apstring suffix = "ack"; char letter = ’J’; while (letter <= ’Q’) { cout << letter + suffix << endl; letter++; } ~~~ 程序的输出是: ~~~ Jack Kack Lack Mack Nack Oack Pack Qack ~~~ 当然,这并不是很正确,因为我拼错了“Ouack”和“Quack”。作为练习,请修改程序以修正这个错误。 再次提醒,一定要小心使用字符串连接,在应用apstring时可以使用,而在原生C字符串时不要使用。不幸的是,在C++中,像letter + "ack"这样的表达式在语法上是正确的,虽然它会产生奇怪的结果,至少在我的开发环境中是这样。
';