一、C风格字符串
C风格字符串将字符串放在字符数组中,并以空字符‘\0‘结束,一般利用指针来操作这些字符串。尽管C++支持C风格字符串,但在C++程序中最好不要使用它们。一些用于操作C风格字符串的标准库函数定义在cstring头文件中,是C语言头文件string.h的C++版本:
strlen(p)
strcmp(p1,p2)
strcat(p1,p2)
strcpy(p1,p2)
传入此类函数的指针必须指向以空字符结束的数组。
char c[]={‘a‘,‘b‘,‘c‘};
cout<<strlen(c)<<endl;//错误,c没有以空字符结束
二、比较字符串
在c++的string类中,比较字符串的操作有==、!=、>、<、>=、<=,将这些运算放在C风格字符串中,比较的是指针,而不是整个字符串:
const char c1[]="first string";
const char c2[]="second string";
if(c1<c2)//错误,试图比较2个无关的地址
实际比较的是指向数组首元素的指针,这2个指针指向的不是同一个对象,无法进行比较