cpp的STL之string
2016-10-28 11:58
477 查看
cpp的STL之string
为什么需要string
1 创建和操作方便 2 不用关心内存分配问题 3 不用考虑内存越界 4 更加丰富的操作
stl string类
stirng的基本操作复制,连接 ,查找字符,查找子串,截短 使用模板算法实现反转,大小写转换
使用这些常用的基本操作,大致就够了啊,其他的可以采用上面的方法组合起来得出结果
// // main.cpp // use_stl_string // // Created by bikang on 16/10/28. // Copyright (c) 2016年 bikang. All rights reserved. // #include <iostream> #include <string> #include <algorithm> using namespace std; void tstring(); int main(int argc, const char * argv[]) { tstring(); return 0; } void tstring(){ cout << "using string" << endl; //string的初始化的方法 const char *pchar = "hello world"; //根据字符数组创建 string str1(pchar); cout <<"str1="<<str1 <<endl; //根据字符数组创建 只取前3位 string str2(pchar,3); cout <<"str2="<<str2 <<endl; //根据string创建 string str3(str1); cout <<"str3="<<str3 <<endl; //填充创建 string str4(5,'a'); cout <<"str4="<<str4 <<endl; //访问string的两种方法 //1 根据长度访问 for(size_t i=0;i<str1.length();i++) cout << str1[i] <<","; cout << endl; //2 根据迭代器访问 string::const_iterator iter1; for(iter1=str1.begin();iter1!=str1.end();++iter1){ cout << *iter1 <<","; } cout << endl; //转换成c风格的字符串 const char *cstr1 = str1.c_str(); cout << cstr1 << endl; //连接 cout<< str1 + " "+ str2 <<endl; string find_str = str1 + str2; //查找,字符或者子串 cout << "find_str="<< find_str << endl; string to_find = "hel"; size_t pos1 = find_str.find(to_find,0); size_t to_find_len = to_find.length(); while (pos1 != string::npos) { cout << pos1<<","; size_t nextPos = pos1+to_find_len; pos1 = find_str.find(to_find,nextPos); } cout << endl; //截断字符串 //移除给定位置和指定数量的 cout << "find_str="<< find_str << endl; find_str.erase(1, 3); cout << "find_str="<< find_str << endl; size_t pos3 = find_str.find('o'); find_str.erase(pos3,1); cout << "find_str="<< find_str << endl; find_str.erase(find_str.begin(),find_str.end()); cout << "find_str_count="<< find_str.length()<<endl; //反转 reverse(str1.begin(),str1.end()); cout << "str1="<< str1 << endl; //大小写转换 str2 = "abc"; string str5 = ""; cout << "str2="<< str2<< endl; transform(str2.begin(), str2.end(), str2.begin(), (int(*)(int))toupper); cout << "str2="<< str2<< endl; transform(str2.begin(), str2.end(), str2.begin(), (int(*)(int))tolower); cout << "str2="<< str2<< endl; }
相关文章推荐
- 在STL中基本容器string、vector、list、deque、set、map之间的区别
- Leetcode 8. String to Integer (atoi) (Easy) (cpp)
- 深入剖析STL GCC 4.4的STL string
- cpp中的STL简介
- STL string 类使用注意问题
- C++STL之string
- SGI STL源码解读之 string
- STL_string(转)
- [转]STL std:string引起的User breakpoint exception/User breakpoint called from code at
- STL中map和string, vector 用法详解
- 1022. Digital Library (30) STL 中 vector,string,map的运用
- 详细解说STL string
- 详细解说STL string
- stl string常用函数
- string class STL心得
- STL中基本容器string、vector、list、deque、set、map之间的区别
- Windbg定位异常系列 - 给被调用函数的stl string类型参数传递了空指针引发的崩溃(windbg结合IDA一起分析)
- STL模板中的string
- C++STL之string
- STL之String详解