操作符

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的常用操作的更多相关文章

  1. Kotlin——初级篇(八):关于字符串(String)常用操作汇总

    在前面讲解Kotlin数据类型的时候,提到了字符串类型,当然关于其定义在前面的章节中已经讲解过了.对Kotlin中的数据类型不清楚的同学.请参考Kotlin--初级篇(三):数据类型详解这篇文章. 在 ...

  2. Redis string类型常用操作

      Redis 有 string.list.set.zset.hash数据类型.string类型是最基础的,其他类型都是在string类型上去建立的,所以了解熟悉string类型的常用操作对于学习re ...

  3. Kotlin——关于字符串(String)常用操作汇总

    在前面讲解Kotlin数据类型的时候,提到了字符串类型,当然关于其定义在前面的章节中已经讲解过了.对Kotlin中的数据类型不清楚的同学.请参考Kotlin——初级篇(三):数据类型详解这篇文章. 在 ...

  4. String 的常用操作

    String 类,我可以不负责的说在 Java 中这个类应该是使用最频繁的类了.然而关于它的常用的操作,我却不甚了解.整理这个东西很反人性的,这些方法,你看到他的时候感觉很简单,但是真正用的时候还是不 ...

  5. Java String 函数常用操作 & format() 格式化输出,代码详解

    package _String_; import java.util.*; import java.math.*; import java.lang.*; public class _Strings ...

  6. C++字符串string类常用操作详解(一)【初始化、遍历、连接】

    代码示例: #include <iostream> #include "string" using namespace std; //字符串初始化 void strIn ...

  7. C# String类常用操作

    1.string.Compare(s1,s2) 比较  按字母顺序后边的大于前边的 s1<s2 retrun -1 ;s1=s2 return 0; s1>s2 return1. Cons ...

  8. redis入门:介绍、特点、安装、各类型常用操作

    一.redis介绍 Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库.缓存和消息中间件. Redis支持多种类型的数据结构,如 字符串(strings), 散列(ha ...

  9. String 类上的常用操作

    java 中String 类上的常用操作: 首先创建对象  String line = new String("String demo"); String line2 = new ...

随机推荐

  1. 机器学习入门-概率阈值的逻辑回归对准确度和召回率的影响 lr.predict_proba(获得预测样本的概率值)

    1.lr.predict_proba(under_text_x)  获得的是正负的概率值 在sklearn逻辑回归的计算过程中,使用的是大于0.5的是正值,小于0.5的是负值,我们使用使用不同的概率结 ...

  2. WDA-FPM-3-SEARCH(OIF)

    转载:https://www.cnblogs.com/sapSB/p/10097830.html   FPM三:简单的SEARCH(OIF) 这里是使用FPM Workbench自动生成的,没有去SE ...

  3. ActiveMQ安全设置:设置admin的用户名和密码

    ActiveMQ使用的是jetty服务器, 打开conf/jetty.xml文件,找到 <bean id="securityConstraint" class="o ...

  4. protocol_link

    蔡燧林:1992—2000年教育部考试中心研究生数学命题组组长现在退休养老.要想办法弄到他编的书(ps:别问怎么弄到,我和我同学都能弄到,你怎么会不能弄到呢)李林:目前在导航独家授课,他能屡屡命中考研 ...

  5. mysql备份和还原命令

    备份和还原数据库都是在未登录的前提下进行命令操作的: 1.备份表: mysqldump -u root -p dbname table1 table2 > D:\sqlback.sql 2.备份 ...

  6. SQL事务日志备份时的问题

    1.在进行事务日志备份的时候,如下图: 3041 消息的疑难解答时的考虑事项:不会只是一个数据库或所有数据库出现问题吗?是备份到本地存储区或远程存储吗?哪种类型的备份 (数据库备份. 日志备份和差异备 ...

  7. Spring Cloud feign

    Spring Cloud feign使用 前言 环境准备 应用模块 应用程序 应用启动 feign特性 综上 1. 前言 我们在前一篇文章中讲了一些我使用过的一些http的框架 服务间通信之Http框 ...

  8. HTML的实际演练1

    1.HTML介绍 一个网站的建立都是HTML的,例如大家可以打开F12就可以看到浏览器的一个开发者模式,就可以看到网页的源代码了: 当然这网页他有很多的标签编写组成的,有的显示文字,段落,有的是个超链 ...

  9. java的Map浅析

    Map<K,V>是以键-值对存储的(key-value), 而Entry<K,V>是Map中的一个接口,Map.Entry<K,V>接口主要用于获取.比较 key和 ...

  10. Excel单元格内容批量加前缀

    比如83190001在A1单元格,要在A列单元内容前面批量加0,在B1输入公式="0"&A1然后向下复制再把B列复制的结果再复制一下:然后到新的一列粘贴,在“粘贴选项”中选 ...