总结了一些c++ string库常用的库函数用法

#include <iostream>
#include <string>//string类可以自动管理内存
using namespace std; int main()
{
//声明
string test1="";
//cin >> test1;
//getline(cin, test1); //相同功能 //c初始化
string test2 = "hello";
string test3 = "world";
string test4("great");
string test41(test2);
string test42(test2.begin(), test2.end());
string test43(test2[], test2[]); //赋值
test2 = "good";
test2.assign("hello ");
test2.assign(test3,,);//将test3的从下标为1的字符开始(包括),大小为2的子串赋给test2
test2.assign(, 'A');//将5个A赋值给test2 //获取字符
cout << test1[]<<endl;
cout << test1[]<<endl;
cout << test1.at()<<endl; //交换
test2.swap(test3); //返回子串
cout << test3.substr() << endl;
cout << test3.substr(, ) << endl;//返回从下标为0的字符开始(包括),大小为2的子串 //追加字符
test3 += test2;
test3.append(test2);
test3.append(test2, , );//将test2的从下标为1的字符开始(包括),大小为3的子串追加给test3
test3.append(, 'A');//追加5个A
test3.push_back('A'); //插入
test3.insert(, "abc");
test3.insert(, test1);//将test1插入下标3
test3.insert(, test1, );//将test1的前两个字符插入
test3.insert(, test1, ,);//将test1的子串(从0开始,长度为2)插入
test3.insert(, , 'A');//插入5个A //清除字符
string test5("hello");
test5.clear();//清除所有字符
cout << test5 << endl;
test5 = "hello";
test5.erase();//清除所有字符
cout << test5 << endl;
test5 = "hello";
test5.erase(, );//删除从下标从1开始的3个字符
cout << test5 << endl;
test5.erase();//删除下标1后所有字符
cout << test5 << endl; //字符串大小
cout << test2.size() << endl;//字符个数
cout << test2.length() << endl;//与size()同
cout << test2.max_size() << endl;//string可包含的最多的字符数,与系统是32位还是64位有关
cout << test2.capacity() << endl;//在重新分配内存前,string对象的最大容量 //字符串比较
cout << test2.compare(test3) << endl;//相同返回0;test2字典顺序先于test3,返回-1;test2字典顺序后于test3,返回1
cout << test2.compare(, , test3, , ) << endl;//子串比较,表示test2的从0开始,大小为3的子串与 test3的从0开始,大小为3的子串比较
string test6 = "ABC";
string test7 = "DEF";
//字典顺序在前的更小,条件成立返回1,不成立返回0
cout << (test5 == test6) << endl;
cout << (test5 < test6) << endl;
cout << (test5 > test6) << endl;
cout << (test5 <= test6) << endl;
cout << (test5 >= test6) << endl; //字符串查找
string test8 = "abcabcaabbj";
cout<<test8.find("aa", )<<endl;//正向查找abc,从下标0开始,返回第一次出现的子串的首字母下标
cout << test8.rfind("ab") << endl;//逆向查找abc,从下标0开始,返回第一次出现的子串的首字母下标
cout << test8.find_first_of("ab") << endl;//查找首次出现子串的第一个字符
cout << test8.find_last_of("ab") << endl;//查找最后一次出现子串的最后一个字符
cout << test8.find_first_not_of("ab") << endl;//查找与子串不等的第一个字符
cout << test8.find_last_not_of("ab") << endl;//查找与子串不等的最后一个字符 return ;
}

C++ 标准模板库(STL)-string的更多相关文章

  1. 标准模板库(STL)学习探究之stack

    标准模板库(STL)学习探究之stack queue priority_queue list map/multimap dequeue string

  2. C++的标准模板库STL中实现的数据结构之链表std::list的分析与使用

    摘要 本文主要借助对C++的标准模板库STL中实现的数据结构的学习和使用来加深对数据结构的理解,即联系数据结构的理论分析和详细的应用实现(STL),本文是系列总结的第二篇.主要针对线性表中的链表 ST ...

  3. 标准模板库(STL)学习探究之vector容器

    标准模板库(STL)学习探究之vector容器  C++ Vectors vector是C++标准模板库中的部分内容,它是一个多功能的,能够操作多种数据结构和算法的模板类和函数库.vector之所以被 ...

  4. C++ 标准模板库(STL)

    C++ 标准模板库(STL)C++ STL (Standard Template Library标准模板库) 是通用类模板和算法的集合,它提供给程序员一些标准的数据结构的实现如 queues(队列), ...

  5. STL学习系列之一——标准模板库STL介绍

    库是一系列程序组件的集合,他们可以在不同的程序中重复使用.C++语言按照传统的习惯,提供了由各种各样的函数组成的库,用于完成诸如输入/输出.数学计算等功能. 1. STL介绍 标准模板库STL是当今每 ...

  6. 标准模板库--STL

    标准模板库STL 1.泛型程序设计 C++ 语言的核心优势之一就是便于软件的重用 C++中有两个方面体现重用: 1.面向对象的思想:继承和多态,标准类库 2.泛型程序设计(generic progra ...

  7. C++的标准模板库STL中实现的数据结构之顺序表vector的分析与使用

    摘要 本文主要借助对C++的标准模板库STL中实现的数据结构的学习和使用来加深对数据结构的理解.即联系数据结构的理论分析和详细的应用实现(STL),本文是系列总结的第一篇,主要针对线性表中的顺序表(动 ...

  8. 实验8 标准模板库STL

    一.实验目的与要求: 了解标准模板库STL中的容器.迭代器.函数对象和算法等基本概念. 掌握STL,并能应用STL解决实际问题. 二.实验过程: 完成实验8标准模板库STL中练习题,见:http:// ...

  9. C++ 标准模板库STL 队列 queue 使用方法与应用介绍

    C++ 标准模板库STL 队列 queue 使用方法与应用介绍 queue queue模板类的定义在<queue>头文件中. 与stack模板类很相似,queue模板类也需要两个模板参数, ...

随机推荐

  1. leaflet本地加载arcgis切片

    var origin = [-20037700, 33711400];//图层起点坐标 var resolutions = [ 8466.6836000338681, // Level 0 4233. ...

  2. 跨越真实和虚拟世界的边界——走近SIGGRAPH 2014大会

    2014大会" title="跨越真实和虚拟世界的边界--走近SIGGRAPH 2014大会"> 作者:孙鑫 微软亚洲研究院研究员 一场大会振奋一座城 温哥华位于加 ...

  3. AUTO Uninstaller 常见问题

    小伙伴是不是遇到 CAD/3dmax/maya/Revit/Inventor 安装失败或者安装不了的问题了呢?AUTODESK系列软件着实令人头疼,CAD/3dmax/maya/Revit/Inven ...

  4. Java日期时间API系列12-----Jdk8中java.time包中的...

    package com.xkzhangsan.time.test; import java.time.LocalDateTime;import java.util.Date; import com.x ...

  5. <SCOI2005>互不侵犯の思路

    日常玄学dp #include<cstdio> #include<cstring> #include<iostream> #include<algorithm ...

  6. 第一次安装vs2010无法运行程序,系统找不到exe文件,LINK : fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏

    最近在看数据结构的一些书籍,怎奈代码是c写的,所以安装一个编译器vs2010来测试代码,但是建完文件后编译ok,f5却出现错误:无法启动程序,系统找不到指定文件.上网找了一些解决办法,但是仍然无法解决 ...

  7. CSS 之动态变换背景颜色

    先上效果图 HTML代码: 123456789 <div class="header"> <h1>GCCHRN'S BLOG</h1> < ...

  8. Python【map、reduce、filter】内置函数使用说明

    题记 介绍下Python 中 map,reduce,和filter 内置函数的方法 一:map map(...) map(function, sequence[, sequence, ...]) -& ...

  9. 点击穿透bug · Jaywii

    微信点击穿透Bug 问题描述:在移动端为了去除点击延迟引入了fast-click,然而在房贷计算器的开发中遇到了这样一个bug,用户点击了select之后,微信在弹出选择器之后会瞬间因为约300ms的 ...

  10. android逆向---charles抓包

    手机与电脑处于同一网络环境,且正确设置代理后,charles显示CONNECT失败,提示信息SSL handshake with client failed: An unknown issue occ ...