【c++STL——第三讲】string系列 (常用知识点总结)

ฅ(๑˙o˙๑)ฅ 大家好, 欢迎大家光临我的博客:面向阿尼亚学习
算法学习笔记系列持续更新中~

阿



一、前言

在 C++ 中,要使用 string 类,必须包含头文件 。string 库提供了许多其他功能,如删除字符串的部分或全部,用一个字符的部分或全部替换另一个字符串的部分或全部,插入、删除字符串中数据,比较、提取、复制、交换等。


二、string的输入

1.cin >> 
//第一种用法是逐个输入数字或者字符,中间用空格隔开。这是最基本的。
//第二种用法是读入一个字符串,遇到”空格、“TAB”、“回车”都会结束,例如:
2.cin.get()
//用法1:cin.get(字符变量名)可以用来接受字符   只能输出一个字符 
//用法2:cin.get(字符数组名,接受字符数目)用来接收一行字符串,可以接收空格   可以输入多个单词
//用法3:cin.get(无参数),无参数主要用于收纳输入流中的不需要的字符,或者收纳回车,弥补cin.get(字符数字名,接收字符数目)的不足。    
3.cin.getline()
//用法1:接收一个字符串,可以接受空格并输出      cin.getline(s,15);
//用法2:cin.getline(接受字符串到n, 接收个数6,结束字符)     	cin.getline(s,25,'n');
4.getline()
//接收一个字符串,可以接受空格并输出,在头文件< string >中    
5.gets()
//接受一个字符串,可以接受空格并输出    
6.getchar()
 //接收一个字符
    char ch;
	while((ch = getchar()) != '\n')//循环输入时,作为判断条件   ch = getchar();//不能写作getchar(ch)
        

三、string的常用函数


//复制
string s1="hello";
string s2=s1;

//连接
string s1;
string s2;
s1=s1+s2;

//比较
if(s1<s2)cout<<s1;
else cout<<s2;
strcmp(s1,s2); 
//strcmp比较两个字符串的大小,一个字符一个字符比较,按ASCLL码比较标准规定:
//第一个字符串大于第二个字符串,则返回大于0的数字
//第一个字符串等于第二个字符串,则返回0
//第一个字符串小于第二个字符串,则返回小于0的数字

//倒置
reverse(s.begin(),s.end());

//获取长度
int n=s.size();
int n=s.length();
int n=s.strlen();//字符串中'\n'前出现字符的个数

//查找
cout<<s.find()//返回首次出现的位置,没有则返回s.npos

//插入
s.insert(2,"www")//输出hewwwllo

//删除
s.erase(1,2)//删除位置1处后两个位置

//截取
s.substr(1,3)//截取位置1处后三个位置
    

c_str() 函数
返回这个string对应的字符数组的头指针

//对于string类型的字符串,需要调用c_str()函数转换为字符数组后才能作为参数转换
string s = "Hello World!";
printf("%s", s.c_str()); //输出 "Hello World!"

char *cstr = (char*)str.c_str();  //先用c_str()把string型转换成const char*型,再强制转换成char*型

stoi函数
stoi(字符串,起始位置,n进制(默认10进制)),将 n 进制的字符串转化为十进制

包含在头文件 #include<string>
string a;//初始化为空串
cout<<stoi(a)<<endl;  //表示将字符串a换成整数输出)(十进制)
    
#include<iostream>
#include<string>
using namespace std;
int main() {
 string str = "1200";
 int a = stoi(str);//默认是10进制的,将 10 进制的字符串1200转化为十进制数值
  int b = stoi(str, 0,8);//8进制的1200转换成10进制
 cout <<"a(10进制的字符串1200转化为十进制数值):\n" <<a << endl;
 
 cout <<"b(8进制的1200转换成10进制):\n" <<b << endl;
 return 0;
}

to_string()函数
将数值转化为字符串。返回对应的字符串

#include <iostream>   
#include <string>     
using namespace std;
int main()
{
 string pi = "pi is " + std::to_string(3.1415926);
 float pf = 42430.23;
 string float_str = to_string(pf) + " is a number";
 cout << pi << '\n';
 cout << float_str << '\n';
 system("pause");
}

另外:字符串中的子串和子序列

子串:必须连续
子序列:可以不连续
连续子序列==子串


最后

莫言真理无穷尽,寸进自有寸进欢
请添加图片描述

  • 5
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

quicklysleep

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值