• [zz]std::string 和 c 的字符串


    char *a = NULL 与 char *str = "Hello" 是有区别的

    string初始化需要用后面一个

    String s=null;和 String s="" 效果是一样的,都将string初始化为空

    ----------------------------------------------------------------我是邪恶的分割线----------------------------------------------------------------

    今天遇到了

    terminate called after throwing an instance of 'std::logic_error'
     what():  basic_string::_S_construct NULL not valid

    已放弃

    原因在于没搞清, char *型的变量和指向 c 风格的字符串指针的区别.

    char *cp = NULL;     cp是一个char*变量

    char *str = "Hello";  str是一个指向 c 风格的字符串指针.

    std::string 的构造函数需要的是一个 c 风格的字符串指针(要求以字符 null 结尾), 而不是一个char *的变量. 所以运行时出了上述错误.

    另外, 很多 c 标准函数, 函数明确说明, 需要一个 c 风格的字符串. 虽然char * 和指向 c 风格的字符串指针的代码看起来都是 char *, 但是含义上有本质的区别.

  • 相关阅读:
    运算符优先级
    Tips—查询某结构体
    在线词典--(一、流程分析)
    数据库—SQLite3
    回调函数(转载)
    UNIX域套接字
    进程间通信小结
    HDU_oj_2027 统计元音
    HDU_oj_2026 首字母变大写
    HDU_oj_2025 查找最大字母
  • 原文地址:https://www.cnblogs.com/zhangzhang/p/2461020.html
Copyright © 2020-2023  润新知