string类

string类

头文件:#include<string>

名称空间:using namespace std;

初始化:

string Str;

String类的构造函数和析构函数如下:

  1. string s(str) //拷贝构造函数 生成str的复制品
  2. string s(str,stridx) //将字符串str内“始于位置stridx”的部分当作字符串的初值
  3. string s(str,stridx,strlen) //将字符串str内“始于stridx且长度顶多strlen”的部分作为字符串的初值
  4. string s(cstr) //将C字符串作为s的初值
  5. string s(chars,chars_len) //将C字符串前chars_len个字符作为字符串s的初值。
  6. string s(num,c) //生成一个字符串,包含num个c字符
  7. string s(beg,end) //以区间beg;end(不包含end)内的字符作为字符串s的初值

string类操作

  1. swap()   //交换两个字符串的内容
  2. +=,append(),push_back() //在尾部添加字符
  3. insert() //插入字符
  4. erase() //删除字符
  5. replace() //替换字符
  6. empty()  //判断字符串是否为空
  7. [ ], at() //存取单一字符
  8. >>,getline() //从stream读取某值
  9. copy() //将某值赋值为一个C_string
  10. c_str() //将内容以C_string返回
  11. data() //将内容以字符数组形式返回
  12. substr() //返回某个子字符串

string类与字符串数组的转换

C++提供的由C++字符串得到对应的C_string的方法是使用data()、c_str()和copy(),其中,data()以字符数组的形式返回字符串内容,但并不添加’\0’。c_str()返回一个以‘\0’结尾的字符数组,而copy()则把字符串的内容复制或写入既有的c_string或字符数组内。C++字符串并不以’\0’结尾。

string类型转换为字符数组

#include<cstdlib>

#include<iostream>

#include<cstdio>

#include<string>

#include<cstring>

using namespace std;

int main()

{

       string s("123456.1");

       char arr[];

       cout<<s.data()<<endl;//1.返回不带'\0' 的字符数组 123456.1

       cout<<s.c_str()<<endl;//2.返回带 '\0'的字符数组 123456.1

       s.copy(arr, );//3.回不带'\0' 的字符数组

       arr[] = '\0';//不带 '\0' 输出堆栈中的垃圾

       cout<<arr<<endl;//123456.1

       //转数字

       printf("%f\n",atof(s.data())); //123456.100000

       printf("%f\n",atof(s.c_str()));//同上

       printf("%f\n",atof(arr));//同上

       cout<<strlen(arr)<<endl;//

       cout<<strlen(s.data())<<endl;//同上

       cout<<strlen(s.c_str())<<endl;//同上

       return ;

}

字符数组转化成string类型

char ch [] = "ABCDEFG";
string str(ch);//也可string str = ch;
或者
char ch [] = "ABCDEFG";
string str;
str = ch;//在原有基础上添加可以用str += ch;

提取子串:

substr(),形式如下:

s.substr();//返回s的全部内容

s.substr(11);//从索引11往后的子串

s.substr(5,6);//从索引5开始6个字符

把两个字符串结合起来的函数是+。

C++string类整理的更多相关文章

  1. 05_整理String类的Length()、charAt()、 getChars()、replace()、 toUpperCase()、 toLowerCase()、trim()、toCharArray()使用说明

    Question: 整理String类的Length().charAt(). getChars().replace(). toUpperCase(). toLowerCase().trim().toC ...

  2. 整理string类常见方法的使用说明

    整理String类的Length().charAt().getChars().replace().toUpperCase().toLowerCase().trim().toCharArray()使用说 ...

  3. Java字符串String类操作方法详细整理

    关于String类的基本操作,可分为以下几类: 1.基本操作方法 2.字符串比较 3.字符串与其他数据类型之间的转换 4.字符与字符串的查找 5.字符串的截取与拆分 6.字符串的替换与修改 我觉得在整 ...

  4. 【Java】整理关于java的String类,equals函数和比较操作符的区别

    初学 Java 有段时间了,感觉似乎开始入了门,有了点儿感觉但是发现很多困惑和疑问而且均来自于最基础的知识折腾了一阵子又查了查书,终于对 String 这个特殊的对象有了点感悟大家先来看看一段奇怪的程 ...

  5. java 复习整理(四 String类详解)

    String 类详解   StringBuilder与StringBuffer的功能基本相同,不同之处在于StringBuilder是非线程安全的,而StringBuffer是线程安全的,因此效率上S ...

  6. String类中一些的方法的应用

    一.整理string类 1.Length():获取字串长度: 2.charAt():获取指定位置的字符: 3.getChars():获取从指定位置起的子串复制到字符数组中:(它有四个参数) 4.rep ...

  7. c++中string类的详解

    ,<时返回-1,==时返回0  string的子串:string substr(int pos = 0,int n = npos) const;//返回pos开始的n个字符组成的字符串strin ...

  8. c++中string类的具体解释

    通过在站点上的资料搜集,得到了非常多关于string类使用方法的文档,通过对这些资料的整理和增加一些自己的代码,就得出了一份比較完整的关于string类函数有哪些和如何用的文档了! 以下先罗列出str ...

  9. Java之String类的使用细节

    String类的特点:     字符串对象一旦被初始化就不会被改变,字符串存储在字符串常量池中(字符串缓冲区).如果池中没有就创建,如果有就直接拿过来用.  代码验证如下:     String s ...

随机推荐

  1. scrapy使用笔记

    新建项目 在需要新建项目的目录下发指令 scrapy startproject MySpider 其中MySpider为工程的名字,会新建一个文件夹 进入工程目录 新建一个爬虫 scrapy gens ...

  2. RHEL 5 安装gcc

    rpm -ivh kernel-headers... rpm -ivh glibc-headers... rpm -ivh glibc-devel... rpm -ivh libgomp.. rpm ...

  3. Hibernate多对多关联

    多对多关联: 示例:Teacher和Student,一个Teacher可以教很多student,一个Student也可以被很多teacher教   多对多单向关联 Teacher知道自己教了哪些学生, ...

  4. Python编程-数据库

    1.MySQL 程序: socket客户端 根据IP和端口进行连接 发送指令: xxx 接收结果 socket服务端 运行起来 获取指令(recv) xxx 解析命令 文件夹操作: ... 文件操作: ...

  5. jQuery可放大预览的图片滑块

    在线演示 本地下载

  6. linux开发应用程序到运行的过程

    1.给linux配置交叉编译环境 2.在windows下使用source insight写程序,一共有m个h文件,n个c文件,k个main函数 3.将源代码放在linux里 4.在源代码文件夹里新建m ...

  7. Qt开发动画

    #include <QPropertyAnimation> #include <QDesktopWidget> //下坠 void MainWindow::on_pushBut ...

  8. c++ boost库学习一:时间和日期

    timer类 #include <boost\timer.hpp> #include "iostream" using namespace std; int _tmai ...

  9. R语言笔记006——分组获取描述性统计量

    方法一:使用aggregate()分组获取描述性统计量 aggregate(mtcars[vars],by=list(am=mtcars$am),mean) aggregate(mtcars[vars ...

  10. 简介web服务器的工作原理

    一 什么是web服务器,应用服务器和web容器? 对于web服务器与应用服务器:“在过去它们是有区别的,但是这两个不同的分类慢慢地合并了,而如今在大多在情况下和使用中可以把它们看成一个整体.” 但是当 ...