string的常用操作
操作符
1.+:可以把两个字符串加起来
插入
iterator insert(iterator i, const char &ch);
basic_string &insert(size_type index, const basic_string &str);
basic_string &insert(size_type index, const char *str);
1.在迭代器i表示的位置前面插入一个字符ch
2.(比较特殊,可以使用下标)在字符串的位置index插入string对象str
3.(比较特殊,可以使用下标)在字符串的位置index插入字符串str
追加
string s1 = "hello";
string s2 = " world"; s1 += s2;//正确,s1的值为”hello world“
s1 += "world";// 正确,s1的值为"hello world"
s1 += 'c'; //正确,s1的值为"helloc" s1.append(s2);//正确,s1的值为"hello world"
s1.append(" world");//正确,s1的值为"hello world"
s1.append('c');//错误,append函数不支持追加字符 s1.push_back(s2);//错误,push_back只能追加字符
s1.push_back("world");//错误,push_back只能追加字符
s1.push_back('c');//正确
+= :在string对象尾部追加内容,"+="可追加string对象,字符以及C风格字符串
append():append函数则可以追加string对象和C风格字符串
push_back():push_back函数只能追加字符
删除
iterator erase(iterator pos);
iterator erase(iterator start, iterator end);
basic_string &erase(size_type index = , size_type num = npos);
1.删除pos指向的字符, 返回指向下一个字符的迭代器
2.删除从start到end前的所有字符,返回一个迭代器,指向被删除的最后一个字符的下一个字符
3.删除从index索引开始的num个字符, 返回*this,index默认值为0,num默认值为npos(字符串总字符个数)
转换为char*
成员函数c_str()函数返回一个指向正规C字符串的指针,内容与本string串相同。
子串
string substr (size_t pos = , size_t len = npos) const;
从下标pos开始,长度为len的子串。
将数值转化为string
std::string to_string(int value);
std::string to_string(long value);
std::string to_string(long long value);
std::string to_string(unsigned value);
std::string to_string(unsigned long value);
std::string to_string(unsigned long long value);
std::string to_string(float value);
std::string to_string(double value);
std::string to_string(long double value);
to_string函数(c++11):将各种类型的数值转化为string
string转化为char*
1.strdup()函数是c语言中常用的一种字符串拷贝库函数,一般和free()函数成对出现, 头文件:string.h
函数原型:
char *strdup(const char *s)
{
char *t = NULL;
if (s && (t = (char*)malloc(strlen(s) + )))
strcpy(t, s);
return t;
}
使用示例:
int main()
{
string s = "abb";
char* cst = strdup(s.c_str());//windows下为_strdup
free(cst);
return ;
}
2.string::c_str()返回const char*,再使用strcpy()函数转化为char*,char *strcpy(char* dest, const char *src),strcpy把从src地址开始且含有'\0'结束符的字符串复制到以dest开始的地址空间:
string s = "aaabgg";
char* cst = (char*)s.c_str();
3.string::c_str()返回const char*,再使用strcpy()函数转化为char*,char *strcpy(char* dest, const char *src),strcpy把从src地址开始且含有'\0'结束符的字符串复制到以dest开始的地址空间:
string s = "aaabgg";
char cst[] = { '\0' };//等价于char* cst=(char*)malloc(s.size()+1);
strcpy(cst, s.c_str());
string的常用操作的更多相关文章
- Kotlin——初级篇(八):关于字符串(String)常用操作汇总
在前面讲解Kotlin数据类型的时候,提到了字符串类型,当然关于其定义在前面的章节中已经讲解过了.对Kotlin中的数据类型不清楚的同学.请参考Kotlin--初级篇(三):数据类型详解这篇文章. 在 ...
- Redis string类型常用操作
Redis 有 string.list.set.zset.hash数据类型.string类型是最基础的,其他类型都是在string类型上去建立的,所以了解熟悉string类型的常用操作对于学习re ...
- Kotlin——关于字符串(String)常用操作汇总
在前面讲解Kotlin数据类型的时候,提到了字符串类型,当然关于其定义在前面的章节中已经讲解过了.对Kotlin中的数据类型不清楚的同学.请参考Kotlin——初级篇(三):数据类型详解这篇文章. 在 ...
- String 的常用操作
String 类,我可以不负责的说在 Java 中这个类应该是使用最频繁的类了.然而关于它的常用的操作,我却不甚了解.整理这个东西很反人性的,这些方法,你看到他的时候感觉很简单,但是真正用的时候还是不 ...
- Java String 函数常用操作 & format() 格式化输出,代码详解
package _String_; import java.util.*; import java.math.*; import java.lang.*; public class _Strings ...
- C++字符串string类常用操作详解(一)【初始化、遍历、连接】
代码示例: #include <iostream> #include "string" using namespace std; //字符串初始化 void strIn ...
- C# String类常用操作
1.string.Compare(s1,s2) 比较 按字母顺序后边的大于前边的 s1<s2 retrun -1 ;s1=s2 return 0; s1>s2 return1. Cons ...
- redis入门:介绍、特点、安装、各类型常用操作
一.redis介绍 Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库.缓存和消息中间件. Redis支持多种类型的数据结构,如 字符串(strings), 散列(ha ...
- String 类上的常用操作
java 中String 类上的常用操作: 首先创建对象 String line = new String("String demo"); String line2 = new ...
随机推荐
- 从底层谈WebGIS 原理设计与实现(六):WebGIS中地图瓦片在Canvas上的拼接显示原理
从底层谈WebGIS 原理设计与实现(六):WebGIS中地图瓦片在Canvas上的拼接显示原理 作者:naaoveGI… 文章来源:naaoveGIS 点击数:1145 更新时间: ...
- MATLAB中 histogram 和 imhist 的区别
matlab有两个生成直方图的库函数,分别是imhist和histogram,二者有何区别呢? 区别就是: imhist 官方help:imhist(I) calculates the histogr ...
- Rust语言学习笔记(4)
Variables and Mutability(变量和可变性) 变量声明有三种:不变量(运行期的常量),变量以及(编译期的)常量. 变量可以重复绑定,后声明的变量覆盖前面声明的同名变量,重复绑定时可 ...
- 查询中mybatis的if判断里传入0
1.传入的是long 或者 Integer类型 ,<if test="id != null "> 但是id传值为0时(前提是id对应的类型为long 或者 Intege ...
- ubuntu部署jenkins
https://www.cnblogs.com/lozz/p/9962316.html 1.安装 wget -q -O - https://pkg.jenkins.io/debian/jenkins- ...
- Loadrunner通过吞吐量计算每个用户需要的带宽
Loadrunner通过吞吐量计算每个用户需要的带宽 运行一个场景,点击Analysis进行分析,使用分析报告中的Average Throughput(bytes/second)进行计算. 计算公式: ...
- org.apache.catalina.core.StandardContext.listenerStart Error configuring application listener of class org.springframework.web.context.ContextLoaderListener java.lang.ClassNotFoundException
使用Intelij Idea时,报错如下: org.apache.catalina.core.StandardContext.listenerStart Error configuring appli ...
- 苹果 重置APPID密保问题及更新开发者协议
[链接]重置AppleID密保问题 https://www.jianshu.com/p/37e7f2852eda [链接]苹果开发者计划许可协议更新:持续更新 https://www.jianshu. ...
- ubuntu 安装 google Gtest
1.安装源代码 在ubuntu的桌面上,右键选择打开终端,在终端中输入如下命令: $ sudo apt-get install libgtest-dev 下载源码后,apt将会在目录/usr/src/ ...
- css设置超出部分文档隐藏(在table标签中不好使解决方案在下)
css设置: .text-over{overflow: hidden;white-space: nowrap;text-overflow: ellipsis;cursor: pointer} div设 ...