C++标准类型库string

来源:互联网 发布:白鹤翔网络架构师 编辑:程序博客网 时间:2024/06/10 16:05

string初始化方式:

int main(){    string s1;//没有提供初始值,则默认初始化空串    string s2(s1);//相同类型直接填入    string s3("hehe");//字符串则要加双引号    string s4(10,'a');//初始化为10个a    string s5=s3;    string s6="haha";   cout<<s1<<s2<<s3<<s4<<s5<<s6<<endl;       return 0;}

打印:heheaaaaaaaaaahaha

用花括号初始化也可以,不是很常用,如:string s7{"abc"}


getline输出一整行

getline:参数(输入流,string对象),读取给定内容,遇到换行符停止(换行符也被读取进去了),它返回一个流的参数。

#include<stdio.h>#include<string>using namespace std;int main(){     string s;     while(cin>>s)     {        cout<<s<<endl;     }     /*string s1;     while(getline(cin,s1))     {         cout<<s1<<endl;     }*/     return 0;}
当输入string字符时,遇到空格就停止了,得到一整行(包含空格的)就要用到getline函数,代码中注释部分就是。


string的size和empty函数,一个返回个数,一个返回是否为空。调用形式:s.size()   ,  s.empty() ,其中size函数返回一个string::size_type类型的无符号数。


处理string对象中的每个字符,使用基于范围的for语句来遍历每个元素,并对其进行操作(改变要定义引用),处理一部分字符则要用到下标。

#include<iostream>#include<string>using namespace std;int main(){     string s="pan";     for(auto &c : s)//c的类型不确定,则用auto     {         c='a';//使每个字符都变为a         cout<<c<<endl;     }         string s1="haha";     for(auto &c1 : s1)     {          s1[1]='b';//使其第二个字符变为b          cout<<c1<<endl;      }      return 0;     }
打印:a

            a

            a

            h

            b

            h

            a

参考资料:C++  Primer第五版


0 0