C++ basic_string::_S_construct null not valid

std::string 字符串不可以初始化为NULL,虽然能通过编译,但是会出现运行错误。
std::string 使用以下两种初始化为空的方式:

std::string s;//执行默认构造函数
std::string s = “”;//执行拷贝构造函数

清空字符串,参考cplusplus.com帮助文档

std::string s = “123”;
s.clear();

Clear string
Erases the contents of the string, which becomes an empty string (with a length of 0 characters).

另:std::string 不可以与null相比较,可以与”“比较,使用empty()函数,length() == 0

总结一下string

标准C++库字符串类std::string的用法
/#include
std::string s1;
std::string s3(s2);
std::string s2(“this is a string”);
begin 得到指向字符串开头的Iterator
end 得到指向字符串结尾的Iterator
rbegin 得到指向反向字符串开头的Iterator
rend 得到指向反向字符串结尾的Iterator
size 得到字符串的大小
length() 和size函数功能相同
max_size 字符串可能的最大大小
capacity 在不重新分配内存的情况下,字符串可能的大小
empty 判断是否为空
operator[] 取第几个元素,相当于数组
c_str 取得C风格的const char* 字符串
data 取得字符串内容地址
operator= 赋值操作符
reserve 预留空间
swap 交换函数
insert 插入字符
append 追加字符
push_back 追加字符
erase 删除字符串
clear 清空字符容器中所有内容
resize 重新分配空间
assign 和赋值操作符一样
replace 替代
copy 字符串到空间
find 查找,返回基于0的索引号
rfind 反向查找
find_first_of 查找包含子串中的任何字符,返回第一个位置
find_first_not_of 查找不包含子串中的任何字符,返回第一个位置
find_last_of 查找包含子串中的任何字符,返回最后一个位置
find_last_not_of 查找不包含子串中的任何字符,返回最后一个位置
substr(n1,len) 得到字符串从n1开始的长度为len的子串
比较字符串(支持所有的关系运算符)
compare 比较字符串
operator+ 字符串链接
operator+= += 操作符
operator== 判断是否相等
operator!= 判断是否不等于
operator< 判断是否小于
operator>> 从输入流中读入字符串
operator<< 字符串写入输出流

转自《C++ std::string 不可初始化为NULL及基本用法》

C++ std::string 不可初始化为NULL及基本用法相关推荐

  1. 转: std::string用法详解

    原文地址为: 转: std::string用法详解  C++中的string 类 简单介绍 前言: string 的角色 1 string 使用 1.1 充分使用string 操作符 1.2 眼花缭乱 ...

  2. C++ 标准程序库std::string 详解

    现在一般不再使用传统的char*而选用C++标准程序库中的string类,是因为string标准程序和char*比较起来,不必担心内存是否足够.字符串长度等等,而且作为一个类出现,集成的操作函数足以完 ...

  3. C++ std::string::substr()

    substr()函数返回一个新建的 初始化为string对象的子串的拷贝string对象. 子串是,在字符位置_Off开始,跨越_Count个字符(或直到字符串的结尾)对象的部分 void main( ...

  4. std::string::substr

    std::string::substr Defined in header <string> - 定义于头文件 <string> public member function ...

  5. std::string详解

    之所以抛弃char*的字符串而选用C++标准程序库中的string类,是因为他和前者比较起来,不必 担心内存是否足够.字符串长度等等,而且作为一个类出现,他集成的操作函数足以完成我们大多数情况下(甚至 ...

  6. ATL::CStringA和std::string之间转换的一些误区

    对于刚做windows下VC的开发同学,类型转换应该是一个令其很苦恼的问题.我刚写工作的时候,也为这类问题不停的在网上搜索转换方法.最近工作中遇到一个"神奇"的bug(一般&quo ...

  7. C++/C++11中std::string用法汇总

    C++/C++11中std::string是个模板类,它是一个标准库.使用string类型必须首先包含<string>头文件.作为标准库的一部分,string定义在命名空间std中. st ...

  8. 数组,结构体初始化为0

    一直以为 int a[256]={0};是把a的所有元素初始化为0,int a[256]={1};是把a所有的元素初始化为1. 调试的时查看内存发现不是那么一回事,翻了一下<The C++ Pr ...

  9. 如何将std :: string转换为const char *或char *?

    如何将<code>std::string转换为char*或const char* ? #1楼 看看这个: string str1("stackoverflow"); c ...

  10. std::string用法总结

    c++stdstring 在平常工作中经常用到了string类,本人记忆了不好用到了的时候经常要去查询.在网上摘抄一下总结一下,为以后的查询方便: string类的构造函数: string(const ...

最新文章

  1. 【坐在马桶上看算法】排序总结:小哼买书
  2. CentOS 6.7安装python3.5
  3. Chrome插件-新浪微博阅读器
  4. 四年努力,梦归阿里,和大家聊聊成长感悟
  5. 成功解决TypeError: __init__() got an unexpected keyword argument 'serialized_options'
  6. 服务器配置和性能,服务器性能配置(硬件)
  7. mysql数据库查询语句过程_mysql(一) SQL查询语句执行过程
  8. mysql建立外键快捷方式_mysql建立外键
  9. 无任何网络提供程序接受指定的网络路径
  10. java:linux上找出最耗资源的线程方法
  11. 手机12306买卧铺下铺技巧_12306订下铺有什么技巧?
  12. 2022年全球与中国电动汽车充电设备市场现状及未来发展趋势
  13. 如何自己编写一个交通仿真软件(一)火种。
  14. 腾讯云轻量应用服务器搭建网站
  15. seo + sem 的竞价推广 如何操作基础一(网络营销)
  16. nbu还原oracle,NBU异机恢复ORACLE成功版本
  17. 如何学好linux,linux的学习建议
  18. HDU1430,魔板
  19. Oracle 自动生成标识列, 比如订单编号,学生ID
  20. 实验3 Python文件与数据库

热门文章

  1. matlab 折射率椭球,折射率椭球详解.ppt
  2. 【JAVA基础速过】第3章 数组+Arrays工具类的使用
  3. rax Picture组件
  4. !!!python 100行代码编写【Google 图片搜索爬取工具】多线程
  5. 区块链与商业银行中的区块链运用
  6. 且听风吟,王者峡谷英雄汇,让我们探一探英雄背后的故事
  7. java 回合制抛物线游戏_回合制抛物线射击游戏《坦克总动》重磅来袭!
  8. grunt的基本使用
  9. Hangfire使用MySQL出现The Command Timeout expired before the operation completed
  10. 改变历史的引擎 Physx携众物理游戏测试