2017年7月4日 望各位大佬批评指正~
string类使用起来比数组更简单,要使用string类,必须在程序中包含头文件string。string类位于名称空间std中,因此您必须提供一条using编译指令。string隐藏了字符串的数组性质,让您可以像处理普通变量那样处理字符串。
#include <iostream>
#include <cstring>
#include <string>
using namespace std;
int main()
{
char namea[20];
char nameb[20]="asdqwe";
string str1="hello";
string str2=" world";
string str3;
string str4;
cin>>str4;
cout<<"str4\t"<<str4<<endl;
str3=str1+str2; //string的拼接
cout<<"strcpy(namea,nameb)\t"<<strcpy(namea,nameb)<<endl;//将字符串复制到字符数组中
cout<<"strcat(namea,nameb)\t"<<strcat(namea,nameb)<<endl;//将字符串附加到字符数组末尾
cout<<"str2.size()\t"<<str2.size()<<endl;//确定字符串中字符数
cout<<"strlen(nameb)\t"<<strlen(nameb)<<endl;//确定字符串中字符数
return 0;
}
函数strcat(namea,nameb)将nameb复制到namea中。
函数strcpy(namea,nameb)将nameb附加到namea末尾。
str2.size();
strlen(nameb)
函数strlen()是一个常规函数,它接受一个C-风格字符串作为参数,并返回该字符串包含的字符数。函数size()的功能基本上与此相同,但句法不同:ste1不是被用作函数参数,而是位于函数名之前,它们之间用句点连接。与第三章介绍的put()方法相同(c++ Primer Plus(第6版)–p49)。这种句法表明,str1是一个对象,而size()是一个类方法。方法是一个函数,是能通过其所属的对象进行调整。在这里,str1是一个string对象,而size()是string类的一个方法。总之,C函数使用参数来指出要使用那个字符串,而C++string类对象使用对象名和句点运算符来指出要使用那个字符串。
综上所述,string类的使用确实比直接定义使用字符串要方便的多,不需要去定义字符串的类型,也不需要去定义字符串的大小,因为系统会自动调整string的大小。在C++ Primer Plus 中也提到了:
这使得与使用数组相比,使用string对象更方便,也更安全。从理论上说,可以将char数组视为一组用于储存一个字符串的char储存单元,而string类变量是一个表示字符串的实体。
http://blog.youkuaiyun.com/yzl_rex/article/details/7839379
附一篇完整的string类使用详解。