1、尽可能地在C++程序中使用string,不要使用继承而来的C语言风格的字符串,会出现许多安全问题。
2、C语言的字符串风格,是以空字符结束的,在C++的头文件cstring中定义了C语言风格的字符串函数,
例如strlen(p); 返回p的长度,并且不把空字符计入,但是该函数只有检索到空字符才返回。所以传给该函数的p必须是一个包含空字符的字符串(数组)。
3、比较字符串,string类型的字符串之间的比较是字符串本身的比较,返回的值是false 或者 true。而C语言风格的strcmp(p1,p2); 其参数是两个指针之间的比较。
4、连接字符串,string类型连接字符串使用的是+运算符,不需要关注存储连接后的字符串的空间是否足够。而C语言风格的strcat(p1,p2); 则需要关注p1的大小是否足够容纳p1和p2连接之后的大小。
5、以上的C语言风格的字符串函数,都是不验证其中字符串的参数。
6、对数组的操作,实际上是对指针的操作。
7、使用C语言风格的strcmp函数的返回值,不能一概而论为0,-1,1。具体的编译器的返回值不同,但是大于:正数>0;小于:负数<0;等于:0;肯定正确。