C++中的string用法

(本人只是小新,写博客就是想记录学习,同时让一些大佬看到我的学习记录可以指出我的错误)

目录

 (1)对于string的个人理解

 (2)字符串的输入

 (3)字符串的基本操作

 (4)字符串的输出


对于C++中的string用法

1:对于string的个人理解:

       string个人理解是字符串类型,既然是字符串的类型,那么这篇文章我就分为第一步如何输入字符串,第二步如何对字符串进行操作,第三步如何输出字符串。

2:字符串的输入:

 (1)cin输入字符串:cin后面可以直接加字符串的名字,不过这种输入如果遇到空格,Tab键,回车的话就直接结束。如下面的代码所示:

#include<bits/stdc++.h>
using namespace std;
int main()
{
	string s;
	//输入字符串abc def
	//abc和def之间有个空格
	cin>>s;
	cout<<s;
	return 0;	
}

这里的cout可以直接输出字符串的,后面(4)字符串的输出会讲到的。这里abc和def之间是有空格的,cin再读入时遇到边终止了,所以输出是abc 

(2)gerline读入字符串:getline的读入解决了cin遇到空格等终止的缺点,格式是:getline(cin,s),括号里的cin是固定的,s是一个字符串的名字,代码如下:

#include<bits/stdc++.h>
using namespace std;
int main()
{
	string s;
	getline(cin,s);
	cout<<s;
	return 0;	
}

 中间有许多空格,输出的时候同时也将这些空格也输出了。(当然还有其他的可以接收空格字符等的,但我喜欢用的是getline)

3:字符串的基本操作:

(1)string字符串的比较:可以直接使用  compare函数  等来比较,比较的规则是,输出第一个不同字符的比较结果,大于返回1,小于返回-1,相等返回0。compare同时也可以接受其它的参数(具体大家可以参考其他资料哈),代码如下:

#include<bits/stdc++.h>
using namespace std;
int main()
{
	string a,b;
	getline(cin,a);
	getline(cin,b);
	cout<<a.compare(b);
	return 0;	
}

 

 

 (2)insert函数:插入

这里的插入可以是字符或者是字符串

1:插入的是字符:格式是a.insert(pos,n,'s')这里的a是字符串的名字,pos是插入的位置,n是字符个数,s代表的就是插入的字符,注意这里的n不可以省略,即使插入的字符只有一个。

2:插入的是字符串:格式是a.insert(pos," s")这里的a是字符串的名字,pos是插入的位置,s是要插入的字符串。代码如下:

#include<bits/stdc++.h>
using namespace std;
int main()
{
	string a,b;
	getline(cin,a);
    cout<<"插入前:"<<a<<endl;
	a.insert(2,"shd");
	cout<<"插入后:"<<a<<endl;
	getline(cin,b);
	cout<<"插入前:"<<b<<endl;
	b.insert(3,1,'s');
	cout<<"插入后:"<<b<<endl;
	return 0;	
}

 

(3)erase函数:删除

删除的格式:a.erase(2,4)这里的a是字符串的名字,2代表的是删除的起始位置,4代表的是从起始位置开始要删除的字符个数。代码如下:

#include<bits/stdc++.h>
using namespace std;
int main()
{
	string a,b;
	getline(cin,a);
    a.erase(2,5);
    cout<<a;
	return 0;	
}

(4)subsrt函数:剪切,我们也可以理解成字符串的子串,格式:a.substr(pos,n)这里的a是字符串的名字,pos是起始位置,n是从起始位置开始算的字符个数。代码如下:

#include<bits/stdc++.h>
using namespace std;
int main()
{
	string a,b;
	getline(cin,a);
    b=a.substr(4,5);
    cout<<"b="<<b;
	return 0;	
}

 (5)append函数:添加

其实与insert插入函数的作用差不多,append函数我们一般用来在末尾添加,不需要还要知道原来字符串的长度,append函数如果末尾添加的是字符的话,不管数量多少,都要写一个数字参数代表个数,具体如代码所示:

#include<bits/stdc++.h>
using namespace std;
int main()
{
	string a,b;
	getline(cin,a);
    b="abcd";
    a.append(b);
    cout<<a<<endl;
    a.append(1,'2');
    cout<<a;
	return 0;	
}

 

 (6)replace函数:替换

顾名思义就是将字符串中的子串替换成其它的字符或者字符串。首先替换字符串,格式是a.replace(pos,n,"12345")这里的a是字符串名字,pos是起始位置,n是从起始位置算起的字符数,后面的双引号里的就是用它来替换从pos开始的n个字符。如果替换字符的话,格式:a.replace(pos,n,ans,' ' )这里的pos和n跟上面一样,ans是字符个数,'  ' 里面的是字符,具体见代码:

#include<bits/stdc++.h>
using namespace std;
int main()
{
	string a,b;
	getline(cin,a);
    b="12345";
    a.replace(1,3,"12345");
    cout<<a<<endl;
    string sa,sb;
    getline(cin,sa);
    sa.replace(2,1,2,'0');
    cout<<sa<<endl;
	return 0;	
}

 (7)find函数:查找

查找字符或者字符串第一次出现的位置,格式具体见代码:

#include<bits/stdc++.h>
using namespace std;
int main()
{
	string a,b;
	getline(cin,a);
    b="123";
    cout<<a.find('a')<<endl;
    cout<<a.find(b);
	return 0;	
}

 (8)revese函数:反转

具体见代码格式:

#include<bits/stdc++.h>
using namespace std;
int main()
{
	string a,b;
	getline(cin,a);
    reverse(a.begin(),a.end());
    cout<<a;
	return 0;	
}

 4:字符串的输出

个人比较喜欢用cout输出,虽然效率不高,但方便。代码如下

#include<bits/stdc++.h>
using namespace std;
int main()
{
	string a,b;
	getline(cin,a);
    cout<<a;
	return 0;	
}

 

  • 5
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

菜到极致就是渣

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

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

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

打赏作者

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

抵扣说明:

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

余额充值