C++string类整理
string类
string类
头文件:#include<string>
名称空间:using namespace std;
初始化:
string Str;
String类的构造函数和析构函数如下:
- string s(str) //拷贝构造函数 生成str的复制品
- string s(str,stridx) //将字符串str内“始于位置stridx”的部分当作字符串的初值
- string s(str,stridx,strlen) //将字符串str内“始于stridx且长度顶多strlen”的部分作为字符串的初值
- string s(cstr) //将C字符串作为s的初值
- string s(chars,chars_len) //将C字符串前chars_len个字符作为字符串s的初值。
- string s(num,c) //生成一个字符串,包含num个c字符
- string s(beg,end) //以区间beg;end(不包含end)内的字符作为字符串s的初值
string类操作
- swap() //交换两个字符串的内容
- +=,append(),push_back() //在尾部添加字符
- insert() //插入字符
- erase() //删除字符
- replace() //替换字符
- empty() //判断字符串是否为空
- [ ], at() //存取单一字符
- >>,getline() //从stream读取某值
- copy() //将某值赋值为一个C_string
- c_str() //将内容以C_string返回
- data() //将内容以字符数组形式返回
- 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类整理的更多相关文章
- 05_整理String类的Length()、charAt()、 getChars()、replace()、 toUpperCase()、 toLowerCase()、trim()、toCharArray()使用说明
Question: 整理String类的Length().charAt(). getChars().replace(). toUpperCase(). toLowerCase().trim().toC ...
- 整理string类常见方法的使用说明
整理String类的Length().charAt().getChars().replace().toUpperCase().toLowerCase().trim().toCharArray()使用说 ...
- Java字符串String类操作方法详细整理
关于String类的基本操作,可分为以下几类: 1.基本操作方法 2.字符串比较 3.字符串与其他数据类型之间的转换 4.字符与字符串的查找 5.字符串的截取与拆分 6.字符串的替换与修改 我觉得在整 ...
- 【Java】整理关于java的String类,equals函数和比较操作符的区别
初学 Java 有段时间了,感觉似乎开始入了门,有了点儿感觉但是发现很多困惑和疑问而且均来自于最基础的知识折腾了一阵子又查了查书,终于对 String 这个特殊的对象有了点感悟大家先来看看一段奇怪的程 ...
- java 复习整理(四 String类详解)
String 类详解 StringBuilder与StringBuffer的功能基本相同,不同之处在于StringBuilder是非线程安全的,而StringBuffer是线程安全的,因此效率上S ...
- String类中一些的方法的应用
一.整理string类 1.Length():获取字串长度: 2.charAt():获取指定位置的字符: 3.getChars():获取从指定位置起的子串复制到字符数组中:(它有四个参数) 4.rep ...
- c++中string类的详解
,<时返回-1,==时返回0 string的子串:string substr(int pos = 0,int n = npos) const;//返回pos开始的n个字符组成的字符串strin ...
- c++中string类的具体解释
通过在站点上的资料搜集,得到了非常多关于string类使用方法的文档,通过对这些资料的整理和增加一些自己的代码,就得出了一份比較完整的关于string类函数有哪些和如何用的文档了! 以下先罗列出str ...
- Java之String类的使用细节
String类的特点: 字符串对象一旦被初始化就不会被改变,字符串存储在字符串常量池中(字符串缓冲区).如果池中没有就创建,如果有就直接拿过来用. 代码验证如下: String s ...
随机推荐
- Python之内置函数再总结
一.数字相关 1.绝对值:abs(-1) 2.最大最小值:max([1,2,3]) ,min([1,2,3]) 3.序列长度:len('abc') , len([1,2,3]) , len(( ...
- 函数没有返回值,默认返回undefined
var a =( function(){return})(); a = undefined;
- iOS URL Loading System / HTTP 重定向 认识与学习
一个朋友问了我一个问题,需求是这样的:他要用本地的H5资源 替换 链接资源, 但是判断链接资源时候 因为一些操作请求本地化了之后 一些操作比如请求服务器使用的是http开头,然而本地资源一直是以f ...
- 内核模块编译时怎样绕过insmod时的版本检查
1.Uboot:每个arm芯片或者海斯芯片都有各自的uboot. 2.但他们的内核版本可以是一样的,主要是跟各自内核的进行的编译选项有关, 31的内核版本里加了版本检查选项“Kernel type-& ...
- 面向过程编程实例------grep-rl 'root 路径
#应用:grep -rl 'root' /etc import os def deco(func): def wrapper(*args): g=func(*args) next(g) return ...
- HTML如何禁止文本框输入
禁止文本框输入有以下两种方法: 1,设置input为只读状态,代码如下: <input readonly="readonly" value="test1" ...
- SDWebImage第三方库学习
1.基本使用方法 //异步下载并缓存 - (void)sd_setImageWithURL:(nullable NSURL *)url NS_REFINED_FOR_SWIFT; //使用占位图片,当 ...
- android开发之如何将一般应用变身系统级应用【转】
本文转载自:https://blog.csdn.net/zanelove/article/details/43953743 前提: ROOT过的手机 1,把代码编写好后,打包导出apk,copy到手机 ...
- linux 上传scp 压缩tar命令
1.Linux 上传scp 1)上传文件与文件夹 scp file weblogic@xx.xxx.xxx.xxx:~/songjd/ scp -r filefolder weblogic@xxx.x ...
- springcloud一些概念知识
1.Eureka 1)Eureka服务治理体系支持跨平台 2)三个核心概念:服务注册中心.服务提供者以及服务消费者 3)服务续约:注册完服务之后,服务提供者会维护一个心跳来不停的告诉Eureka Se ...