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;肯定正确。

 posted on 2018-08-04 09:56  linlh  阅读(239)  评论(0编辑  收藏  举报