zoukankan      html  css  js  c++  java
  • C++的string类型和继承C语言风格的字符串的区别与注意事项

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

  • 相关阅读:
    centos 7 -- Disk Requirements: At least 134MB more space needed on the / filesystem.
    DNS Server Centos 7
    生成report由Eamil定時寄出
    WRT 版本说明
    cisco linksys ea3500 刷机 openwrt
    [QNAP crontab 定時執行程式
    实例 编辑 .bashrc(不断更新)
    tar命令
    ls -l 显示年份
    git 丢弃本地代码时遇到的问题
  • 原文地址:https://www.cnblogs.com/Dark-King/p/9417620.html
Copyright © 2011-2022 走看看