C++ 标准模板库(STL)-string
总结了一些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的更多相关文章
- 标准模板库(STL)学习探究之stack
标准模板库(STL)学习探究之stack queue priority_queue list map/multimap dequeue string
- C++的标准模板库STL中实现的数据结构之链表std::list的分析与使用
摘要 本文主要借助对C++的标准模板库STL中实现的数据结构的学习和使用来加深对数据结构的理解,即联系数据结构的理论分析和详细的应用实现(STL),本文是系列总结的第二篇.主要针对线性表中的链表 ST ...
- 标准模板库(STL)学习探究之vector容器
标准模板库(STL)学习探究之vector容器 C++ Vectors vector是C++标准模板库中的部分内容,它是一个多功能的,能够操作多种数据结构和算法的模板类和函数库.vector之所以被 ...
- C++ 标准模板库(STL)
C++ 标准模板库(STL)C++ STL (Standard Template Library标准模板库) 是通用类模板和算法的集合,它提供给程序员一些标准的数据结构的实现如 queues(队列), ...
- STL学习系列之一——标准模板库STL介绍
库是一系列程序组件的集合,他们可以在不同的程序中重复使用.C++语言按照传统的习惯,提供了由各种各样的函数组成的库,用于完成诸如输入/输出.数学计算等功能. 1. STL介绍 标准模板库STL是当今每 ...
- 标准模板库--STL
标准模板库STL 1.泛型程序设计 C++ 语言的核心优势之一就是便于软件的重用 C++中有两个方面体现重用: 1.面向对象的思想:继承和多态,标准类库 2.泛型程序设计(generic progra ...
- C++的标准模板库STL中实现的数据结构之顺序表vector的分析与使用
摘要 本文主要借助对C++的标准模板库STL中实现的数据结构的学习和使用来加深对数据结构的理解.即联系数据结构的理论分析和详细的应用实现(STL),本文是系列总结的第一篇,主要针对线性表中的顺序表(动 ...
- 实验8 标准模板库STL
一.实验目的与要求: 了解标准模板库STL中的容器.迭代器.函数对象和算法等基本概念. 掌握STL,并能应用STL解决实际问题. 二.实验过程: 完成实验8标准模板库STL中练习题,见:http:// ...
- C++ 标准模板库STL 队列 queue 使用方法与应用介绍
C++ 标准模板库STL 队列 queue 使用方法与应用介绍 queue queue模板类的定义在<queue>头文件中. 与stack模板类很相似,queue模板类也需要两个模板参数, ...
随机推荐
- ArcGIS Server10.2忘记密码怎么办?重置ArcGIS Server Manager密码
忘记了ArcGIS Server Manager的密码不要慌张,下面简单的几步就可以重置密码. 第一步:找到ArcGIS Server的安装目录,然后找到..\ArcGIS\Server\tools\ ...
- 使用dtree构建框架导航
前言: 该例子就是个框架导航 , 左边包含dtree的框架,点击上面的节点右边框架显示 说明步骤: 1. 首先获得dtree http://www.destroydrop.com/javascrip ...
- Java IO: Buffered和Data
作者:Jakob Jenkov 译者: 李璟(jlee381344197@gmail.com) 本小节会简要概括Java IO中Buffered和data的输入输出流,主要涉及以下4个类型的流:Bu ...
- [LC] 230. Kth Smallest Element in a BST
Given a binary search tree, write a function kthSmallest to find the kth smallest element in it. Not ...
- 聊聊H5与JS近几年的黑科技
聊聊H5与JS近几年的黑科技 自ajax技术的诞生,编程界兴起了一股WEB开发热,facebook,Twitter等众多大佬级企业都在网页应用上大放异彩,这十年我们见证了前端技术的崛起.这期间产生了众 ...
- 地理位置(Geolocation)API 简介
一.开篇简述 Geolocation API(地理位置应用程序接口)提供了一个可以准确知道浏览器用户当前位置的方法.且目前看来浏览器的支持情况还算不错(因为新版本的IE支持了该API),这使得在不久之 ...
- JAVA中String类的比较
首先给大家看一段代码 package javaapptest; public class JavaAppTest { public static void main(String[] args) { ...
- HTTP 协议的基本知识,包括请求流程、请求方法等
一.什么是http协议? HTTP是Hyper Text Transfer Protocol(超文本传输协议)的缩写.它的发展是万维网协会(World Wide Web Consortium)和Int ...
- 监控Linux系统所选的服务所占进程内存占用
[代码] #!/bin/bash #程序功能描述: # 监控系统所选的服务所占进程内存占用 #作者:孤舟点点 #版本:1.0 #创建时间:-- :: PATH=/bin:/sbin:/usr/bin: ...
- 如何进行Web服务的性能测试
涉及到web服务的功能在不断的增加,对于我们测试来说,我们不仅要保证服务端功能的正确性,也要验证服务端程序的性能是否符合要求.那么性能测试都要做些什么呢?我们该怎样进行性能测试呢? 性能测试 ...