C++学习笔记 lesson9 C++ string类
来源:互联网 发布:公司数据管理制度 编辑:程序博客网 时间:2024/06/05 06:00
STL可变长字符串类
#include<string.h> //c 语言的字符串操作#include<cstring> // 符合 c++标准 字符串操作#include<string>//c++ STL可变长字符串类#include<iostream>using std::string;template<typename T>//不同的数据类型在反汇编中自动生成不同的地址void Swap(T& lhs, T&rhs){T temp;temp = lhs;lhs = rhs;rhs = temp;}int main(){//std::wstring wstr; //宽字节 存放unicode wchar_t 2byte//string str; //窄字节 字节上大小不同 char 1bytestring str("123456789", 3);// 取前三个出来std::cout << str << std::endl; string str1(10, 'A');// 把字符复制10次string str2(str, 3); // 456789 从第3+1个元素开始取//位置 长度string str3(str, 3, 3);// 789 string str4("123455", 3, 3);//456 从[3]开始取3个//===> 产生临时对象string(char*)temp //string(string,1,2) string str5("123455", 3); //取前三个//长度操作string str6;//使用的默认构造,传递的是一个空字符串str6.size(); // 0 返回当前string的lengthstr6.length();// 0 返回当前string的length 和size一样str6.empty();// 1 str6.max_size();str6.capacity();str6.resize(100, 'a');//填充a//查找string str7("12345678");std::size_t pos = str7.find('1');// 全匹配 返回一个size_t的对象 查到返回第一次的当前下标,//查不到返回 std::string::npos(不要使用-1)std::size_t pos1 = str7.find("12", 4);// 第二个参数是开始查找的位置std::size_t pos2 = str7.find("123434", 4, 4); //第三个参数是待查找字符串的前几个str7.rfind('8');//和find一样,查找的顺序是从尾部开始查str.find_first_of('8');//查找第一个str.find_last_of('8');//查找最后一个str.find_first_not_of('8');//查找第一个不是这个串里任何一个字符的值的位置//Emp 查找出数字串string strl("asdcerx 012324984 edhfvld");std::size_t pos_begin = strl.find_first_of("1234567890");std::size_t pos_end = strl.find_first_not_of("1234567890", pos_begin);string num(strl.begin() + pos_begin, strl.begin() + pos_end);//比较 和c语言 strcmp 一样int pos = pos_begin;int len = num.size();std::cout << (strl.compare(pos, len, num) == 0) << std::endl;//截取string num = (strl.substr(pos_begin, pos_end - pos_begin));//交换num.swap(strl);//拼接num += 100;//不能接浮点数,整数会被转成char型,接char和字符串才能直接拼接在后面num.append(10, 'M');//在后面拼接10个M//访问num[4];//如果下标越界 抛出系统异常,不能try catchnum.at(4);//如果下标越界 抛出能处理的异常//c风格字符串转换//strlen(num); 没有重载 operator char*()strlen(num.c_str());//c_str 返回const char*return 0;}
0 0
- C语言学习笔记 lesson9 scanf 详解
- C++学习笔记 lesson9 C++ string类
- C++string类学习笔记
- 嵌入式学习-uboot-lesson9.1-C语言环境初始化
- 嵌入式学习-uboot-lesson9.2-C点亮LED
- 【学习笔记】【C++】自己实现string类
- C string 字符串 学习笔记
- C/C++ 学习笔记:C++ 中 string 类使用总结
- 【C++】学习笔记六——String类
- C笔记。string
- Windows程序设计__孙鑫C++Lesson9《应用程序外观修改》
- 【学习C++】学习C++ -> string类字符串
- C++/C学习笔记
- 再次学习C++string
- C++String学习
- 【安卓学习笔记】JAVA基础Lesson9-对象的转型
- C++primer 第三章学习笔记(string篇)
- c++primer学习笔记(3.2)标准库string类型
- PHP 面向对象设计原则--单一职责原则
- 关于app更新后部分用户点击icon图标会闪退的问题
- 双调欧几里得旅行商问题 hdu 2224 |hdu 4824 [动态规划]
- Android百分比布局
- 零基础学WEB前端-CSS
- C++学习笔记 lesson9 C++ string类
- 切换svn插件的用户
- Spring 4MVC下实现文件的上传下载
- vc+6.0 开发Windows窗体程序时报错:unresolved external symbol _main的解决办法
- 4个常见的电脑故障解决办法
- springmvc传多个对象且参数重名
- 支付宝支付
- Android bootchart 分析
- PyQt5的学习之路(四)