1、string对象和数组的区别
string对象和字符数组之间的主要区别是,可以将将string对象生命为简单变量,而不是数组
string str1; //create an empty string object
string str2="panther"; //create an initialized String
程序会自动调整string对象的长度
不能将一个数组赋值给另一个数组,但可以将一个string对象赋值给另一个string对象。
char a[20];
char b[20]="zwf";
string str1;
string str2=weifu";
a=b; //INVALID,no array assignment
str1=str2; //VALID,object assignment ok
2、string类字符串的合并操作
string str3;
str3=str1+str2; //assign str3 the joined strings
str1 +=str2; //add str2 to the end os str1
strcat(charr1,charr2);//append contents of charr2 to charr1
3、拷贝操作和添加字符串操作
#include<iostream>
using namespace std;
#include <cstring>
int main()
{
char a1[20];
char a2[20]="zwf";
string str1;
string str2="weifu";
str1=str2;
strcpy(a1,a2);
str1+="abc";
strcat(a1,"xxxyyy");
cout<<"a1:"<<a1<<endl;cout<<"str1:"<<str1;
int len1=();
return 0;
int len2=strlen(a1);
cout<<"len1:"<<len1<<endl;
cout<<"len2:"<<len2;
}
结果显示为:
a1:zwfxxxyyy
str1:weifuabc
对字符数组进行操作的strcpy()和strcat()都在头文件cstring中
strcpy():将字符串复制到字符数组中。(不允许将一个字符数组直接复制给另一个字符数组)
strcat():将字符串附加到字符数组末尾。
4、
未初始化的数组的内容是未定义的;函数strlen()从数组的第一个元素开始计算字节数,直到遇到空字符;所以对于未被初始化的数据,第一个空字符出现的位置是随机的,因此不同用户用strlen()得到的数组长度可能不同
5、字符串的末尾都是以'\0'结束的。