c++string用法入门必看超详细-创新互联

1、string的作用

string就是字符串的意思,是c++用来代替char数组的数据结构。里面封装了一些常用的方法,方便我们地对其进行一些操作,而且string的空间大小是动态变化的,大大减小了不必要的花销

创新互联成都企业网站建设服务,提供成都网站建设、网站建设网站开发,网站定制,建网站,网站搭建,网站设计,自适应网站建设,网页设计师打造企业风格网站,提供周到的售前咨询和贴心的售后服务。欢迎咨询做网站需要多少钱:189820811082、string常用的输入方法

(1)cin输入,遇到空格停止输入
代码示例:

#include//c++标准头文件,可以使用cout,cin等标准编译用法
using namespace std;//命名空间,防止重名给程序带来各种隐患,使用cin,cout,map,set,vector,queue时都要使用
int main(){string s1,s2;//定义字符串s1、s2 
	cin>>s1;//输入一个字符串给s1 
	cin>>s2;//输入一个字符串给s2 
	cout<<"s1得到的值是: "<

输入:

hello world!

运行结果:

s1得到的值是: hello
s2得到的值是: world!

(2)getline输入,遇到换行符停止输入
代码示例:

#include//c++标准头文件,可以使用cout,cin等标准编译用法
using namespace std;//命名空间,防止重名给程序带来各种隐患,使用cin,cout,map,set,vector,queue时都要使用
int main(){string s1,s2;//定义字符串s1、s2
	getline(cin,s1);//输入一行字符串给s1 
	getline(cin,s2);//输入一行字符串给s2 
	cout<<"s1得到的值是: "<

输入:

hello world!
happy every day!

运行结果:

s1得到的值是: hello world!
s2得到的值是: happy every day!

值得注意的是:
cin输入会自动吃点前置换行和空格,即cin输入得到的不可能是空串。而getline不会吃掉换行符号,可能会使得输入出现意料之外的错误。
示例代码:

#include//c++标准头文件,可以使用cout,cin等标准编译用法
using namespace std;//命名空间,防止重名给程序带来各种隐患,使用cin,cout,map,set,vector,queue时都要使用
int main(){string s1,s2,s3;//定义字符串s1、s2、s3
	cin>>s1; //输入一个字符串给s1 
	getline(cin,s2);//输入一行字符串给s2 
	getline(cin,s3);//输入一行字符串给s3 
	cout<<"s1得到的值是: "<cout<<"s2是空串"<cout<<"s2得到的值是: "<

输入:

hi!
hello world!

运行结果:

s1得到的值是: hi!
s2是空串
s3得到的值是: hello world!

解决的办法是多写一个getline,或者getchar()来达到吃掉多余的换行符字符:
示例代码:

#include//c++标准头文件,可以使用cout,cin等标准编译用法
using namespace std;//命名空间,防止重名给程序带来各种隐患,使用cin,cout,map,set,vector,queue时都要使用
int main(){string s1,s2,s3;//定义字符串s1、s2、s3
	cin>>s1; //输入一个字符串给s1 
	getline(cin,s2);//输入一行字符串给s2 
	getline(cin,s3);//输入一行字符串给s3 
	cout<<"s1得到的值是: "<cout<<"s2是空串"<cout<<"s2得到的值是: "<

输入:

hi!
hello world!
happy every day!

运行结果:

s1得到的值是: hi!
s2得到的值是: hello world!
s3得到的值是: happy every day!
3、string常用的成员函数
size()//获取字符串长度
insert()//插入字符串
append()//插入字符串
erase()//删除任意字符,时间复杂度O(n),n为字符串长度
substr()//截取字符字串
back()//获取最后一个字符
pop_back()//删除最后一个字符,时间复杂度O(1)
empty()//判断是否为空
clear()//清空字符串

示例代码:

#include//c++标准头文件,可以使用cout,cin等标准编译用法
using namespace std;//命名空间,防止重名给程序带来各种隐患,使用cin,cout,map,set,vector,queue时都要使用
int main(){string s="a";//定义一个字符串并初始化 
	
	cout<<"string常用的三种插入方法:"<

运行结果

string常用的三种插入方法:

1、+号
s+="b"后:s=ab

2、insert()
s.insert(2,"c")后:s=abc

3、append
s.append("d")后:s=abcd

查看字符串大小
s.size()=4

截取字符串
s.substr(1,2)=bc

删除特定字符
s.erase(0,2)后: s=cd

删除最后一个字符
s.pop_back()后:s=c

两种判断字符串是否为空的方法
1、s.empty()等于1时即为空,等于0时非空
2、用s==判断,等于1时即为空,等于0时非空
s.empty() = 0
(s=="") = 0

两种清空字符串方法
1、s.clear()
2、s=""

清空后
s.empty() = 1
(s=="") = 1
4、string的大小比较

string的比较是以逐个字母的ascii码进行比较的
示例代码:

#include//c++标准头文件,可以使用cout,cin等标准编译用法
using namespace std;//命名空间,防止重名给程序带来各种隐患,使用cin,cout,map,set,vector,queue时都要使用
int main(){string s1="abc";
	string s2="acb";
//	先比较a和a,相等时再比较b和c,明显bs2){cout<"<cout<cout<s2){cout<"<cout<cout<s2){cout<"<cout<cout<

运行结果:

abcbb
bbc>bbbc

5、string的遍历方法
(1)下标遍历:通过下标随机访问逐个遍历。
示例代码:

#include//c++标准头文件,可以使用cout,cin等标准编译用法
using namespace std;//命名空间,防止重名给程序带来各种隐患,使用cin,cout,map,set,vector,queue时都要使用
int main(){string s="abcdefg";
	for(int i=0;icout<

运行结果:

abcdefg

如果想逆序遍历呢?只需要逆向思考,从s.size()-1到0遍历即可
示例代码:

#include//c++标准头文件,可以使用cout,cin等标准编译用法
using namespace std;//命名空间,防止重名给程序带来各种隐患,使用cin,cout,map,set,vector,queue时都要使用
int main(){string s="abcdefg";
	for(int i=s.size()-1;i>=0;i--){cout<

运行结果:

gfedcba

(2)foreach遍历
示例代码:

#include//c++标准头文件,可以使用cout,cin等标准编译用法
using namespace std;//命名空间,防止重名给程序带来各种隐患,使用cin,cout,map,set,vector,queue时都要使用
int main(){string s="abcdefg";
	for(char c:s){cout<

运行结果:

abcdefg

foreach遍历方法在结构体的遍历中比较常用,因为其简单易写,但是有一个弊端就是不能逆序遍历。

是不是很简单呢?

刚接触肯定会觉得难,多些做题多些用,熟悉了就容易了,兄弟萌,加油!!!

文章尚有不足,欢迎大牛们指正

感谢观看,点个赞吧

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧


分享题目:c++string用法入门必看超详细-创新互联
标题URL:http://cdiso.cn/article/djodci.html