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
原创粉丝点击