函数和string对象
虽然C风格字符串和string对象的用途几乎相同,但与数组相比,string对象与结构的更相似,可以将一个对象赋给另一个对象,也可以将对象作为完整的实体进行传递。如果需要多个字符串,可以声明一个string对象数组,而不是二维char数组。
程序7.14
#include<iostream>
#include<string>
using namespace std;
const int SIZE = 5;
void display(const string sa[], int n);
int main()
{
string list[SIZE]; //一个含有5个string对象的数组
cout << "Enter your " << SIZE << " favorite astronomical sights:\n";
for (int i = 0; i < SIZE; i++)
{
cout << i + 1 << ": ";
getline(cin, list[i]);
}
cout << "Your list:\n";
display(list, SIZE);
system("pause");
return 0;
}
void display(const string sa[], int n)
{
for (int i = 0; i < n; i++)
cout << i + 1 << ": " << sa[i] << endl;
}
需要指出的一点是,除函数getline()外,该程序像对待内置类型(如int)一样对待string对象,如果需要string数组,只需使用通常的数组声明格式即可:
string list[SIZE];
这样,数组list的每个元素都是一个string对象,可以像下面这样使用他:
getline(cin,list[i]);
同样,形参sa是一个指向string对象的指针,因此sa[i]是一个string对象。