在cout和多数C++表达式中,char数组名、char指针以及用引号括起来的字符串常量都被解释为字符串第一个字符的地址。因此对于char a[10]="abcd";C++中的cout对象认为char(其它的也是一样的)的地址是字符串的首地址,则它将从该字符开始打印,指导遇到空字符为止。
1 我们可以使用以下几种方法定义字符串:
(1)char as[20]
可以直接对它初始化 char as[20]="animal";
(2)char *bs
可以直接对它初始化 char *bs="animal";
(3)string cs
可以直接对它初始化 string cs="animal";
2 strlen() 用于求字符串的长度,strcpy()用于将字符串复制到数组中,strcat()将字符串附加到字符数组的末尾。
对于两个字符串数组不能直接复制与拼接,必须借助与函数的帮助。
char ctr1[20];
char ctr2[20]="animal";
string str1;
string str2="animal";
复制: str1=str2;
strcpy(ctr1,ctr2);
拼接: str1+=str2;
strcat(ctr1,ctr2);
确定字符串的字符数:
int len1=str1.size();
int len2=strlen(ctr1);
3 指针和字符串
函数无法返回一个字符串,要编写一个返回字符串的函数,可以返回字符串的地址。
char *buildstr(char c,int n) { char * pstr=new char[n+1]; pstr[n]='\0'; while(n-->0) pstr[n]=c; return pstr; }
char *bs=buildstr(a,10);
cout<<bs<<endl//将输出的是bs中的字符串
cout<<&bs<<endl//将输出的是bs的首地址