string类

string::npos 指定了string 对象最大允许长度,通常是最大的unsigned int值
构造函数
string(const char * s) 初始化为s指向的NBTS (以空字符结束的传统的C 字符串)
string(size_type n, char c) 创建包含n个元素的string对象,每个元素都初始化为c
string(const string & str) 初始化为另一个string对象str (复制构造函数)
string() 默认长度为0 的string对象 (默认构造函数)
string(const char * s, size_type n) 初始化为NBTS的前n个字符,即使超尾
template<class Iter>
string(Iter begin, Iter end) 初始化为区间[begin,end) 内的字符,begin,end行为像指针
string(const string & str, 
string size_type pos = 0,
size_type n = npos) 初始化为str 中从位置pos开始的n个字符(或到结尾)
string(string && str) noexcept C++11新增,初始化为str,并可能修改str (移动构造函数)
string(initializer_list<char> il) C++11新增,初始化为初始化列表il 中的字符


输入
C-风格字符串输入方式
char ch[10];
cin >>ch; 方法一
cin.getline(ch, 10); 方法二,转换换行,istream类方法
cin.get(ch, 10); 方法三,换行留在输入流
string 类输入方式
string str;
cin >> str; 方法一
getline(cin, str); 方法二,独立函数
* cin.getline() 和 getline() 都有第三个可选参数,定义输入的边界,默认为\n

string 版本的getline() 停止读取的情况
1.到达文件尾,输入流的eofbit被设置,fail()和eof() 都将返回true
2.遇到分节字符(默认\n),将把分界字符从输入流删除,但不存储它
3.读取字符数达到最大(string::npos 和可供分配的内存字节数中较小的一个),输入流的failbit被设置,fail()将返回true.
string 版本的 operator>>() 函数不断读取,直到遇到空白字符并将其留在输入队列。


方法
capacity() 返回当前分配给字符串的内存块大小
reserve() 请求内存块的最小长度
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值