因为C中除了字符数组以外没有直接与字符串相关的变量类型,在处理一些问题的时候不是很方便。所以C++提供新的数据类型——字符串类型(string类型),在使用方法上,它和char、int类型一样,可以用来定义变量,这就是字符串变量——用一个名字代表一个字符序列。

实际上,string并不是C++语言本身具有的基本类型,它是在C++标准库中声明的一个字符串类,用这种类可以定义对象。每一个字符串变量都是string类的一个对象(注意头文件形式 #include<string>)

string可以构造一个字符串变量,那么它的操作有哪些呢。它包含在string库中(不是string.h没有.h),它可以和定义一个字符一样定义一个字符串变量,而且强大的C++还内置了各种函数,基本实现不用再手写操作函数。而且可以进行字典序的比较和串操作。

一、string字符串变量常用方法

方法总结及部分结果展示如下:

#include<bits/stdc++.h>
using namespace std;
int main(){string s="61116";string s2="71117";cout<<s+s2<<endl;//连接两个字符串cout<<(s>s2) <<endl;//比较两个字符串的大小 //上面比较两个字符串的大小结果是 true 或者 false  在这里是 1  或者 0 cout<<s.substr(3,3)<<endl;//substr(n,l)  从第n个位置截取长度为l的字串,若超过最大长度,则截取到最后。 cout<<s.substr(3,5)<<endl;s.append(2,'b');//s.append(n,c);在s串后面加入n个c字符(append还有其他用法,详情可百度)s.erase(s.begin(),s.begin()+2);//s.erase(l,r);删除某个区间,l,r都为迭代器s.erase(it);//删除一个字符,it为迭代器s.size();//返回字符串s的长度大小s.begin();//返回首位置的迭代器s.end();//返回末位置的迭代器s.insert(it,ch);//在it位置插入ch字符,it为迭代器s.resize(len,c);//把字符串当前大小置为len,并用c填充不足的部分s.empty();//判断是否为空串s.length();//返回字符串的长度s.max_size();//返回当前系统string对象可存放的最大长度s.capacity();//返回当前容量s.at(k);//返回第k+1个字符(该用法会坚持是否越界)s.c_str();//返回C字符串的指针,内容为s串s.find(s1);//查找s中是否包含s1,并返回头位置,找不到则返回string::nposs.replace(k,x,ch);//从k位置开始,把后面的x个元素替换为ch(还有很多其他用法)s.swap(s2);//交换两个string字符串return 0;
}

二、string常见要点总结

  1. string类型可以当作字符数组处理!在一个字符串数组中包含若干个(现为5个)元素,每个元素相当于一个字符串变量。
  2. 并不要求每个字符串元素具有相同的长度,即使对同一个元素而言,它的长度也是可以变化的,当向某一个元素重新赋值,其长度就可能发生变化。
  3. 在字符串数组的每一个元素中存放一个字符串,而不是一个字符,这是字符串数组与字符数组的区别。如果用字符数组存放字符串,一个元素只能存放一个字符,用一个一维字符数组存放一个字符串。
  4. 每一个字符串元素中只包含字符串本身的字符而不包括′\0′。 (如有错误欢迎指正!)

C++中string字符串类型详解及常见方法分析相关推荐

  1. mysql数据库的字符串表示什么意思_MySQL数据库的字符串类型详解(01)

    Mysql的数据类型主要分为三类:数字类型.字符串(字符)类型.日期和时间类型,由于时间紧迫,根据学习的需要 数字类型暂不做详解,等待有时间了在修改此文档,此文主要介绍mysql 数据类型中的字符串类 ...

  2. BAT批处理中的字符串处理详解(字符串截取)

    BAT批处理中的字符串处理详解(字符串截取 批处理有着具有非常强大的字符串处理能力,其功能绝不低于C语言里面的字符串函数集.批处理中可实现的字符串处理功能有:截取字符串内容.替换字符串特定字段.合并字 ...

  3. mysql中数据库字段类型详解

    mysql中数据库字段类型详解 1,blob字段 mysql中blob是一个二进制大型对象,是一个可以储存大量数据的容器,它能容纳不同大小的数据. mysql中blob的四种类型除了存储数据的大小有区 ...

  4. mysql binlog event_MySQL binlog中的事件类型详解

    MySQL binlog记录的所有操作实际上都有对应的事件类型的,譬如STATEMENT格式中的DML操作对应的是QUERY_EVENT类型,ROW格式下的DML操作对应的是ROWS_EVENT类型. ...

  5. BAT批处理中的字符串处理详解

    参考文章:BAT批处理中的字符串处理详解(字符串截取) 1.截取字符串 截取字符串可以说是字符串处理功能中最常用的一个子功能了,能够实现截取字符串中的特定位置的一个或多个字符.举例说明其基本功能: @ ...

  6. c语言中截取字符串 sub,详解C++ string常用截取字符串方法

    string常用截取字符串方法有很多,但是配合使用以下两种,基本都能满足要求: find(string strSub, npos); find_last_of(string strSub, npos) ...

  7. java string类型详解_Java字符串类型详解

    Java 字符串类主要有String.StringBuffer.StringBuilder.StringTokenizer 1.字符串类型底层都是使用char数组进行实现. 2.从jdk1.7以后,S ...

  8. js split参数为无效字符_互联网前端开发技术JavaScript字符串类型详解

    String类型 String类型包含了三个属性和大量的可用内置方法. String对象属性 String也包含对象的通用方法,比如valueOf().toLocaleString()和toStrin ...

  9. C++中的字符串流详解iostream,sstream

    注:本文只详解C++中的#include <iostream> ,#include <sstream>,暂不详解#include <fstream>.等后期博主会补 ...

最新文章

  1. oracle存储过程生成单号,Oracle生成单据编号存储过程的实例代码
  2. python 钉钉机器人自定义发送文件_Python自定义钉钉机器人发送自动化结果报告...
  3. 递归实现数字排列组合
  4. 设计模式三(工厂方法模式)学习笔记
  5. Python菜鸟入门:day17编程学习
  6. C语言再学习-- 大端小端详解(转)
  7. 非线性系统【三】LaSalle不变原理
  8. VM虚拟机安装及安装Windows系统
  9. 浏览器劫持(病毒)事件处置
  10. EfficientNet V1 V2总结
  11. 深度学习(Python)-- 神经网络的数学构建块
  12. 微信屏蔽网址解决办法 微信网址被屏蔽了红了照样打开
  13. ABP微服务示例中ProductManagementHttpApiClient服务地址配置
  14. pytorch读取常用数据集dataset实现例子
  15. 不懂技术,怎样制作手机电子书?
  16. C++中构造函数的超详细讲解
  17. oracle 如何备份.bak,Oracle备份如何到异机还原
  18. NTFS, FAT32和exFAT文件系统有什么区别?
  19. 高匿,普匿与透明代理
  20. iOS开发 - UIPageControl实现分页图片轮播器

热门文章

  1. 动态规划C++实现--龙与地下城游戏
  2. Oracle数据库ORA-00911:一直出现无效字符问题
  3. 魔众文档管理系统 v5.0.0
  4. MDCC创新应用展 应用秀场之《程序员》杂志封面人物秀(组图)
  5. 手游摇杆(零)摇杆设计原理
  6. ORA-12505: TNS: 监听程序当前无法识别连接描述符中所给出的SID等错误解决方法【连接本机】
  7. 查看数值类型python_python 查询数据库返回的数据类型
  8. jquery.ajax参数时间例子
  9. hdu 3397 Sequence operation(线段树,lazy,区间合并)
  10. 在过程中要正式批准可交付成果_●根据客户的要求,CCB批准对项目可交付成果做重大变更;项目质量标准也要据此变更进行相应变更。项目质 - 信管网...