STL string 的学习(一)

先把<string> 包含上再说。

 

1.string::size_type idx = filename.find('K');

    if(idx == string::npos)

   {

//查找失败的处理,idx必须是 size_type 类型的,不可以是其他类型,否则会出错

// string 不是一个C-string串,所以了,没有结尾的 '/0'

//npos 类似于‘/0’

}

 

2. 在filename.substr(filename.find('.'))  中,如果找不到‘.’ 就会抛出异常 (因为此处返回值为子串的起始索引)

    在filename.substr(0, filename.find('.')) 中,如果找不到‘.’ 就会不会抛出异常。而会返回整个串。

 

3. endIdx = line.find_first_of (delims, begIdx)  从begIdx开始,找到line中第一次出现delims中所含字符的位置。

    同理,还有find_first_not_of();

 

4.line[] 字符串进行下标访问,但是没有合法检验,line.at()就会有合法检验了。参见这段程序:

 

 

5.wstring 是针对wchar_t而预先定义的特别化版本:

 

6. basic_string<>被定义为所有字符串型别的基本模版类别 。

namespace std {

              template<class charT,

      class traits = char_traits<charT>,

class  Allocator = allocator<charT> >

               class basic_string;

}

 

其中,string 和wstring是两个预先定义的特化版本。

 

7.STL中的string 并不支持正则表达式,文本处理(大写化,大小写不计的字符串比较)

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在 C++ STL 库中,string 是一种标准库中的字符串类型,可以用来存储和处理字符串。string 类型提供了许多字符串操作函数,包括字符串的拼接、查找、替换、比较等。使用 string 类型可以方便地进行字符串操作,而且具有高效性和可移植性。以下是 string 类型的常用操作: 1. 创建一个 string 对象: ``` string s1; // 创建一个空字符串 string s2("hello"); // 创建一个值为 "hello" 的字符串 string s3(s2); // 使用 s2 创建一个新的字符串 s3 string s4(5, 'a'); // 创建一个含有 5 个字符 'a' 的字符串 ``` 2. 获取 string 对象中的字符和子串: ``` char c = s1[0]; // 获取字符串 s1 的第一个字符 string s5 = s2.substr(2, 3); // 获取字符串 s2 中从第 2 个字符开始的 3 个字符的子串 ``` 3. 修改 string 对象中的字符和子串: ``` s1[0] = 'h'; // 修改字符串 s1 的第一个字符为 'h' s2.replace(1, 2, "xx"); // 将字符串 s2 中从第 1 个字符开始的 2 个字符替换为 "xx" ``` 4. 连接 string 对象: ``` s1 += "world"; // 将字符串 "world" 连接到字符串 s1 的末尾 s3 = s2 + s1; // 将字符串 s1 和 s2 连接生成新的字符串 s3 ``` 5. 查找和比较 string 对象: ``` int pos = s2.find("el"); // 查找字符串 s2 中第一次出现 "el" 的位置 bool flag = (s1 == s2); // 判断字符串 s1 和 s2 是否相等 ``` 6. 转换 string 对象: ``` int x = stoi(s1); // 将字符串 s1 转换为整数类型 double y = stod(s2); // 将字符串 s2 转换为浮点数类型 ``` 总之,使用 string 类型可以方便地进行字符串操作,而且具有高效性和可移植性。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值