• 获取字符串长度


#include<cstdio>
#include<iostream>
#include<string>
using namespace std;
int main()
{string str1 = "hello";int length = str1.length();printf("调用str.length()函数获取字符串长度:%d\n\n",length );return 0;
}
  • 字符串连接


#include<cstdio>
#include<iostream>
#include<string>
using namespace std;
int main()
{string str1 = "hello";string str2="my girl!";string str3="hello ";string str4=str1+str2;string str5=str3+str2;cout<<"字符串str1+str2连接结果:"<<str4<<endl;cout<<endl;cout<<"字符串str3+str2连接结果:"<<str5<<endl;return 0;
}
  • 字符串比较


#include<cstdio>
#include<iostream>
#include<string>
using namespace std;
int main()
{string str1 = "hello";string str2="my girl!";string str3="hello ";if (str1 < str3)cout << "字符串比较结果:" << "str1<str2" << endl;cout << endl;return 0;
}
  • 获取字符串的第一个/最后一个字符

其中begin 得到指向字符串开头的Iterator,end 得到指向字符串结尾的Iterator

const_iterator 是一个不可以该元素值的迭代器,具体的更多差别可以参考这里:

https://blog.csdn.net/Krismile_/article/details/89765979


#include<cstdio>
#include<iostream>
#include<string>
using namespace std;
int main()
{string str1 = "hello";string str2="my girl!";string str3="hello ";string::const_iterator it = str1.begin();cout << *it << endl;//end是指向最后一个字符后面的元素,而且不能输出,所以cout << *it << endl;这样输出会报错it = str1.end();it--;cout << *it << endl;return 0;
}
  • 倒置串

注意头文件是#include<algorithm>


#include<cstdio>
#include<iostream>
#include<string>
#include<algorithm>
using namespace std;
int main()
{string str1 = "hello";string str2="my girl!";string str3="hello ";reverse(str2.begin(), str2.end());cout << "倒置串:" << str2 << endl;return 0;
}
  • 字符串转字符数组


#include<cstdio>
#include<iostream>
#include<string>
#include<cstring>
using namespace std;
int main()
{string str1 = "hello";string str2="my girl!";string str3="hello ";char *d = new char[20];  //因为下一句那里不是直接赋值,所以指针类型可以不用const char *strcpy(d, str3.c_str());  //c_str 取得C风格的const char* 字符串cout << "str3:" << c << endl;cout << "d:" << d << endl;str3 = "hahaha";cout << "str3:" << c << endl;cout << "d:" << d << endl;return 0;
}
  • 查找串


#include<cstdio>
#include<iostream>
#include<string>
#include<cstring>
using namespace std;
int main()
{string str1 = "hello";string str2="my girl!";string str3="hello ";//find-从指定位置起向后查找,直到串尾//默认从位置0(即第1个字符)开始查找cout << st1.find('e') << endl;//在st1中,从位置2(l,包括位置2)开始,查找o,返回首次匹配的位置cout << st1.find('o', 2) << endl;//两句均输出1,原因是计算机中-1和4294967295都表示为32个1(二进制)cout << (st1.find('c', 0) == -1) << endl;cout << (st1.find('c', 0) == 4294967295) << endl;string st2("aabcbcabcbabcc");str1 = "abc";//6,从st2的位置2(b)开始匹配,返回第一次成功匹配时匹配的串(abc)的首字符在st2中的位置,失败返回-1cout << st2.find(str1, 2) << endl;cout << st2.find("abcdefg", 2, 3) << endl;//6   取abcdefg得前3个字符(abc)参与匹配,相当于st2.find("abc", 2)//rfind-从指定位置起向前查找,直到串首cout << st1.rfind('a', 7) << endl;//find_first_of-在源串中从位置pos起往后查找,只要在源串中遇到一个字符,该字符与目标串中任意一个字符相同,就停止查找,返回该字符在源串中的位置;若匹配失败,返回-1string str6("bcgjhikl");string str7("kghlj");//从str1的第0个字符b开始找,g与str2中的g匹配,停止查找,返回g在str1中的位置2cout << str6.find_first_of(str7, 0) << endl;//find_last_of-与find_first_of函数相似,只不过查找顺序是从指定位置向前string str("abcdecg");cout << str.find_last_of("hjlywkcipn", 6) << endl;//从str的位置6(g)开始向前找,g不匹配,再找c,c匹配,停止查找,返回c在str中的位置5//find_first_not_of-在源串中从位置pos开始往后查找,只要在源串遇到一个字符,与目标串中的任意字符都不相同,就停止查找,返回该字符在源串中的位置;若遍历完整个源串,都找不到满足条件的字符,则返回-1cout << str.find_first_not_of("kiajbvehfgmlc", 0) << endl;//3   从源串str的位置0(a)开始查找,目标串中有a,匹配,..,找d,目标串中没有d(不匹配),停止查找,返回d在str中的位置3//find_last_not_of-与find_first_not_of相似,只不过查找顺序是从指定位置向前cout << str.find_last_not_of("kiajbvehfgmlc", 6) << endl;//3system("pause");cout << str.find_la
}

其他的一些函数:
rbegin 得到指向反向字符串开头的Iterator
rend 得到指向反向字符串结尾的Iterator
max_size 字符串可能的最大大小
capacity 在不重新分配内存的情况下,字符串可能的大小
empty 判断是否为空
operator[] 取第几个元素,相当于数组
data 取得字符串内容地址
operator= 赋值操作符
reserve 预留空间
swap 交换函数
insert 插入字符
append 追加字符
push_back 追加字符
operator+= += 操作符
erase 删除字符串
clear 清空字符容器中所有内容
resize 重新分配空间
assign 和赋值操作符一样
replace 替代
copy 字符串到空间
rfind 反向查找
find_first_of 查找包含子串中的任何字符,返回第一个位置
find_first_not_of 查找不包含子串中的任何字符,返回第一个位置
find_last_of 查找包含子串中的任何字符,返回最后一个位置
find_last_not_of 查找不包含子串中的任何字符,返回最后一个位置
substr 得到字串
compare 比较字符串
operator+ 字符串链接
operator== 判断是否相等
operator!= 判断是否不等于
operator< 判断是否小于
operator>> 从输入流中读入字符串
operator<< 字符串写入输出流
getline 从输入流中读入一行

C++自带string类的常用方法相关推荐

  1. stream流、数学类、String类的常用方法、date、密码等

    一.API 1.基本概念 英文全称Application Programming Interface,翻译为"应用程序编程接口". 是一些预先定义的函数,目的是提供应用程序与开发人 ...

  2. String类的常用方法大全!

    String类的常用方法 (1)基本方法 (2)关于测试和索引方法 (3)匹配替换(正则) (4)简单的正则表达式 (1)基本方法 int length():返回字符串的长度 char charAt( ...

  3. java-从键盘输入一串字符,输出不同的字符以及每个字符出现的次数。(输出不按照顺序)运用String类的常用方法解题

    从键盘输入一串字符,输出不同的字符以及每个字符出现的次数.(输出不按照顺序)运用String类的常用方法解题 package labreport7;import java.util.Scanner;/ ...

  4. java 实现 string类_java 中String类的常用方法总结,带你玩转String类。

    String类: String类在java.lang包中,java使用String类创建一个字符串变量,字符串变量属于对象.String类对象创建后不能修改,StringBuffer & St ...

  5. c++ string replace_Java——String类的常用方法总结

    点击上方"IT咸鱼",星标公众号重磅干货,第一时间送达 一.String类String类在java.lang包中,java使用String类创建一个字符串变量,字符串变量属于对象. ...

  6. arduino char*转string_Java 中 String 类的常用方法汇总

    一.String 类的概念以及特性 1.String 类的概念 String 类代表字符串,在 java.lang 包中.字符串是常量 ,用双引号引起来表示. 它的值在创建之后不能更改 .由 0 或多 ...

  7. string类的常用方法有哪些以及用法

    String类: String类在java.lang中,String声明的是不可变的对象,每次操作都是生成新的String对象,然后指针指向新的String对象,原先的对象依旧在内存中,但是不在指向它 ...

  8. String类的常用方法API

    String的常用方法 String是我们开发中,使用频率很高的类.Java中的String类包含了50多个方法,令人惊讶的是他们绝大多数都是很常用的,可以想见使用的频里非常的高. 1.char ch ...

  9. java中String类的常用方法总结

    String类: String类在java.lang包中,java使用String类创建一个字符串变量,字符串变量属于对象.String类对象创建后不能修改,StringBuffer & St ...

最新文章

  1. python中的正则替换字符串函数re.sub
  2. oracle profile
  3. 串口ISPHUB制作
  4. BZOJ.4247.挂饰(背包DP)
  5. cocos2d_x 常用函数解析
  6. 如何与人交流——程序员,赶紧生个孩子吧!
  7. 100个LINUX站点
  8. 战棋类中实现的移动范围
  9. QT学习:网络应用开发练习(简单网页浏览器)
  10. 悟透JavaScript(美绘本)
  11. PPT怎么在线转视频?
  12. HTML跳转为啥会404,为什么网页会出现404 not found?
  13. Android学习系列(34)--App应用之发布各广告平台版本
  14. Elon Musk赞同“火星经济将依靠加密货币运行”言论
  15. 光阴似箭——绿巨人NVIDIA显卡发展简史回顾
  16. vue: 组件中 template 定义
  17. 20154319 实验七 网络诈骗技术防范
  18. Vc++安装包_Visual C++ 6.0中文版安装包下载及安装教程
  19. JavaScript离别之作——HTML元素操作
  20. 【树莓派】更新树莓派SD卡测速一键脚本,SD卡读写速度测试

热门文章

  1. 上手评测:华为nova8和nova7Pro哪个好?区别是什么
  2. RSA加密算法-非对称加密算法的使用
  3. ❤️React Hooks⭐
  4. 微信如何保存文件?企业微信如何下载文件?
  5. html页面转成PDF,PDF下载
  6. 网页分享到贴吧,微博
  7. Python使用openpyxl模块小批量处理Excel文件
  8. 概要设计和详细设计模板_超详细的【免试拼】铝模板设计深化配模方案 非筑名铝模板设计...
  9. 区块链报错3 | truffle unbox 报错 | downloading失败 | unbox failed
  10. “”中国制造“”专用高速磁盘阵列存储服务器