string基本字符系列容器

来源:互联网 发布:第三方打印软件 编辑:程序博客网 时间:2024/06/02 18:07

Code:

#include <iostream>#include <string>#include <vector>using namespace std;int main(){    string s;    cin>>s;    s=s+"abcd";    cout<<s<<endl;    s.append("123");    //在字符串s后面添加123    cout<<s<<endl;    s.insert(s.begin()+2,'9');    cout<<s<<endl;    cout<<s[2]<<endl;    s.erase(s.begin()+3);    cout<<s<<endl;    s.erase(s.begin(),s.begin()+3);    cout<<s<<endl;    s.replace(3,6,"good");     //从第3个开始,将连续的6个字符替换为good    cout<<s<<endl;    cout<<s.length()<<endl;    return 0;}


采用find()方法可以查找字符串中的第一个字符元素或者子串,如果查到,则返回下标值(从0开始计数),如果查不到,则返回4294967295

#include <iostream>#include <string>using namespace std;int main(){    string s;    s="cat dog cat";    cout<<s.find('o')<<endl;    cout<<s.find("dog")<<endl;    cout<<s.find("dogc")<<endl;    return 0;}

compare()方法与其他字符串相比较,如果它比对方大,则返回1,如果比对方小则返回-1,如果相等则返回0

#include <iostream>#include <string>using namespace std;int main(){    string s;    s="cat dog cat";    cout<<s.compare("cat")<<endl;    cout<<s.compare("cat dog cat")<<endl;    cout<<s.compare("dog")<<endl;    return 0;}


反转字符串:reverse()

#include <iostream>#include <algorithm>#include <string>int main(){    std::string s;    s="123456789";    std::reverse(s.begin(),s.end());    std::cout<<s<<std::endl;    return 0;}


string对象作为vector元素

#include <iostream>#include <string>#include <vector>#include <algorithm>int main(){    std::vector<std::string> v;    v.push_back("Jack");    v.push_back("Mike");    v.push_back("Tom");    std::cout<<v[1]<<std::endl;    std::cout<<v[2][0]<<std::endl;    std::cout<<v[2].length()<<std::endl;    return 0;}


string的输入与输出:

#include <iostream>#include <stdio.h>#include <string>using namespace std;int main(){    string s;    char ss[105];    scanf("%s",ss);     //string对象输入方法    s=ss;    printf(s.c_str());  //用printf输出字符串对象采用c_str()方法    cout<<endl;}


sscanf()可以把一个字符串按自己需要的方式分离出子串,甚至是数字

#include <iostream>#include <string>#include <stdio.h>using namespace std;int main(){    string s1,s2,s3;    char sa[105],sb[105],sc[105];    sscanf("abc 123 pc","%s %s %s",sa,sb,sc);    s1=sa;    s2=sb;    s3=sc;    cout<<s1<<" "<<s2<<" "<<s3<<endl;    int a,b,c;    sscanf("1 2 3","%d %d %d",&a,&b,&c);    cout<<a<<" "<<b<<" "<<c<<endl;    int x,y,z;    sscanf("4,5$6","%d,%d$%d",&x,&y,&z);    cout<<x<<" "<<y<<" "<<z<<endl;    return 0;}


string对象与数值之间的相互转换

#include <iostream>#include <stdio.h>#include <string>#include <sstream>using namespace std;string convertToString(double x){    ostringstream o;    if(o<<x)       return o.str();    return "conversion error";}double convertFromString(const string &s){    istringstream i(s);    double x;    if(i>>x)       return x;    return 0.0;}int main(){    char b[15];    string a;    sprintf(b,"%d",1993);        //C语言将数值转化为string    a=b;    cout<<a<<endl;    string cc=convertToString(1993);    //C++语言将数值转化为string    cout<<cc<<endl;    string dd="2013";    int p=convertFromString(dd);        //C++语言将string转化为数值    cout<<p<<endl;    return 0;}

原创粉丝点击