【C/C++干货系列】string字符串用法

目录

1、string的作用

2、string常用的输入方法

(1)cin输入,遇到空格停止输入

(2)getline输入,遇到换行符停止输入

 (3)string常用的成员函数

(4) string的大小比较

(5) string的遍历方法

下标遍历:通过下标随机访问逐个遍历。

foreach遍历

(6)string与数字的相互转换

to_string()函数

stoi()函数

atoi()函数


1、string的作用

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

2、string常用的输入方法

(1)cin输入,遇到空格停止输入

代码示例:

#include<iostream>//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得到的值是: "<<s1<<endl;
    cout<<"s2得到的值是: "<<s2<<endl;
} 



输入:

hello world!



运行结果:

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



(2)getline输入,遇到换行符停止输入

代码示例:

#include<iostream>//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得到的值是: "<<s1<<endl;
    cout<<"s2得到的值是: "<<s2<<endl;
} 



输入:

hello world!
happy every day!



运行结果:

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



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

#include<iostream>//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得到的值是: "<<s1<<endl;
//    判断s2是不是空串 
    if(s2==""){
        cout<<"s2是空串" <<endl; 
    } else{
        cout<<"s2得到的值是: "<<s2<<endl;
    }
    cout<<"s3得到的值是: "<<s3<<endl;
} 



输入:

hi!
hello world!



运行结果:

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



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

#i
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值