当前位置:嗨网首页>书籍在线阅读

14-赋值、拼接和附加

  
选择背景色: 黄橙 洋红 淡粉 水蓝 草绿 白色 选择字体: 宋体 黑体 微软雅黑 楷体 选择字体大小: 恢复默认

4.3.2 赋值、拼接和附加

使用string类时,某些操作比使用数组时更简单。例如,不能将一个数组赋给另一个数组,但可以将一个string对象赋给另一个string对象:

char charr1[20];             // create an empty array
char charr2[20] = "jaguar";  // create an initialized array
string str1;                 // create an empty string object
string str2 = "panther";     // create an initialized string
charr1 = charr2;             // INVALID, no array assignment
str1 = str2;                 // VALID, object assignment ok

string类简化了字符串合并操作。可以使用运算符+将两个string对象合并起来,还可以使用运算符+=将字符串附加到string对象的末尾。继续前面的代码,您可以这样做:

string str3;
str3 = str1 + str2;    // assign str3 the joined strings
str1 += str2;          // add str2 to the end of str1

程序清单4.8演示了这些用法。可以将C-风格字符串或string对象与string对象相加,或将它们附加到string对象的末尾。

程序清单4.8 strtype2.cpp

// strtype2.cpp –- assigning, adding, and appending
#include <iostream>
#include <string>            // make string class available
int main()
{
    using namespace std;
    string s1 = "penguin";
    string s2, s3;
    cout << "You can assign one string object to another: s2 = s1\n";
    s2 = s1;
    cout << "s1: " << s1 << ", s2: " << s2 << endl;
    cout << "You can assign a C-style string to a string object.\n";
    cout << "s2 = \"buzzard\"\n";
    s2 = "buzzard";
    cout << "s2: " << s2 << endl;
    cout << "You can concatenate strings: s3 = s1 + s2\n";
    s3 = s1 + s2;
    cout << "s3: " << s3 << endl;
    cout << "You can append strings.\n";
    s1 += s2;
    cout <<"s1 += s2 yields s1 = " << s1 << endl;
    s2 += " for a day";
    cout <<"s2 += \" for a day\" yields s2 = " << s2 << endl;
    return 0;
}

转义序列\"表示双引号,而不是字符串结尾。该程序的输出如下:

You can assign one string object to another: s2 = s1
s1: penguin, s2: penguin
You can assign a C-style string to a string object.
s2 = "buzzard"
s2: buzzard
You can concatenate strings: s3 = s1 + s2
s3: penguinbuzzard
You can append strings.
s1 += s2 yields s1 = penguinbuzzard
s2 += " for a day" yields s2 = buzzard for a day