3) 字符串变量的输入输出
  可以在输入输出语句中用字符串变量名,输入输出字符串,如:
  cin>> string1; //从键盘输入一个字符串给字符串变量string1
  cout<< string2; //将字符串string2输出
  字符串变量的运算
  在上一节中可以看到: 在以字符数组存放字符串时,字符串的运算要用字符串函数,如strcat(连接)、strcmp(比较)、strcpy(复制),而对string类对象,可以不用这些函数,而直接用简单的运算符。
  1) 字符串复制用赋值号
  string1=string2;
  其作用与“strcpy(string1,string2);”相同。
  2) 字符串连接用加号
  string string1=″C++″; //定义string1并赋初值
  string string2=″Language″;//定义string2并赋初值
  string1=string1 + string2;//连接string1和string2
  连接后string1为″C++ Language″。
  3) 字符串比较直接用关系运算符
  可以直接用 ==(等于)、>(大于)、<(小于)、!=(不等于)、>=(大于或等于)、<=(小于或等于)等关系运算符来进行字符串的比较。
  不仅可以用string定义字符串变量,也可以用string定义字符串数组。如:
  string name[5]; //定义一个字符串数组,它包含5个字符串元素
  string name[5]={″Zhang″, ″Li″, ″Fun″, ″Wang″, ″Tan″}; //定义一个字符串数组并初始化
  此时name数组的状况如图所示。

  关于字符串数组的几点说明:
  在一个字符串数组中包含若干个(现为5个)元素,每个元素相当于一个字符串变量。并不要求每个字符串元素具有相同的长度,即使对同一个元素而言,它的长度也是可以变化的,当向某一个元素重新赋值,其长度可能发生变化。
  在字符串数组的每一个元素中存放一个字符串,而不是一个字符,这是字符串数组与字符数组的区别。如果用字符数组存放字符串,一个元素只能存放一个字符,用一个一维字符数组存放一个字符串。
  每一个字符串元素中只包含字符串本身的字符而不包括′′。
  可见用字符串数组存放字符串以及对字符串进行处理是很方便的。
  在定义字符串数组时怎样给数组分配存储空间呢?实际上,编译系统为每一个字符串变量分配4个字节,在这个存储单元中,并不是直接存放字符串本身,而是存放字符串的地址。在本例中,是把字符串″Zhang″的地址存放在name[0],把字符串″Li″ 的地址存放在name[1],把字符串″Fun″的地址存放在name[2]……上只是一个示意图。在字符串变量中存放的是字符串的指针(字符串的地址)。