• string基本字符系列容器


    今天学了关于string的一些基本字符容器,下面我就摘要几种。

    一.用reverse反向排序string对象(要用#include<algorithm>头文件)

     1 #include<iostream>
     2 #include<string>
     3 #include<algorithm>
     4 using namespace std;
     5 int main()
     6 {
     7     string s;
     8     cin>>s;
     9     reverse(s.begin(),s.end()); 
    10     cout<<s<<endl;
    11     return 0;
    12 }

    二.string对象作为vector元素(类似于字符串数组)

     1 #include<iostream>
     2 #include<string>
     3 #include<vector>
     4 #include<algorithm>
     5 using namespace std;
     6 int main()
     7 {
     8     vector<string> v;
     9     v.push_back("Jack");
    10     v.push_back("Mike");
    11     v.push_back("Tom");
    12     cout<<v[0]<<endl;
    13     cout<<v[1]<<endl;
    14     cout<<v[2]<<endl; //将Jack,Mike,Tom分别标记到数组中,分别为v[0],v[1],v[2],数组元素从零开始标记;
    15     cout<<v[0][0]<<endl; //表示数组中第0个元素中第0个字母,如下:
    16     cout<<v[1][0]<<endl;       //0 1 2 3
    17     cout<<v[2].length()<<endl; //J a c k
    18     return 0;
    19 }

    运行结果

    Jack
    Mike
    Tom
    J
    M
    3

    三.string类型的数字化处理

     1 #include<iostream>
     2 #include<string>
     3 using namespace std;
     4 int main()
     5 {
     6     string s;    //0 1 2 3 4 5 6(标号)
     7     s="1234059"; //1 2 3 4 0 5 9
     8     int sum=0;
     9     for(int i=0;i<s.length();i++)
    10     {
    11         if(s[i]=='0')sum+=0;
    12         else if(s[i]=='1')sum+=1;
    13         else if(s[i]=='2')sum+=2;
    14         else if(s[i]=='3')sum+=3;
    15         else if(s[i]=='4')sum+=4;
    16         else if(s[i]=='5')sum+=5;
    17         else if(s[i]=='6')sum+=6;
    18         else if(s[i]=='7')sum+=7;
    19         else if(s[i]=='8')sum+=8;
    20         else if(s[i]=='9')sum+=9;
    21     }
    22     cout<<sum<<endl;
    23     return 0;
    24 }

    运行结果

    24

    四.string对象与字符数组相互操作(字符数组与string对象的输入与输出)

     1 #include<iostream>
     2 #include<string>
     3 #include<stdio.h>
     4 using namespace std;
     5 int main()
     6 {
     7     string s;
     8     char ss[100]; //输入字符串到字符数组中
     9     scanf("%s",&ss); //字符数组赋值到字符串对象
    10     s=ss;
    11     printf(s.c_str()); //用printf输出字符串对象,要采用c_str()方法
    12     cout<<endl;
    13     printf("%s",ss); //用printf输出字符串数组
    14     cout<<endl;
    15     cout<<s<<endl; //输出字符串对象
    16     cout<<ss<<endl; //输出字符数组
    17     return 0;
    18 }

    运行结果

    abc123
    abc123
    abc123
    abc123
    abc123

    五.string对象与sscanf函数(c语言中,sscanf函数可以把一个字符串按你需要的方式分离出子串,甚至是数字)

     1 #include<string>
     2 #include<stdio.h>
     3 #include<iostream>
     4 using namespace std;
     5 int main()
     6 {
     7     string s1,s2,s3;
     8     char sa[100],sb[100],sc[100];
     9     sscanf("abc 123 pc","%s %s %s",sa,sb,sc); //将字符串分离成子串,分隔符为空格
    10     s1=sa;
    11     s2=sb;
    12     s3=sc;
    13     cout<<s1<<" "<<s2<<" "<<s3<<endl;
    14     int a,b,c;
    15     sscanf("1 2 3","%d %d %d",&a,&b,&c); //将字符串分离成数字,分隔符为空格;当用到数字的时候,跟scanf一样,它要传指针地址;
    16     cout<<a<<" "<<b<<" "<<c<<endl;
    17     int x,y,z;
    18     sscanf("4,5$6","%d,%d$%d",&x,&y,&z); //分隔符为","和"$";
    19     cout<<x<<" "<<y<<" "<<z<<endl;
    20     return 0;
    21 }

    运行结果

    abc 123 pc
    1 2 3
    4 5 6

    六.string对象与数值相互转换

     1 #include<iostream>
     2 #include<string>
     3 #include<sstream>
     4 #include<stdio.h>
     5 using namespace std;
     6 string convertToString(double x) //converToString与ToString的区别(c++方法:将数值转换为string)
     7 {
     8     ostringstream o;
     9     if(o<<x)
    10         return o.str();
    11     return "conversion error";
    12 }
    13 double converFromString(const string &s) //c++方法:将string转换成数值
    14 {
    15     istringstream i(s);
    16     double x;
    17     if(i>>x)
    18     return x;
    19     return 0.0;
    20 }
    21 int main()
    22 {
    23     char b[10]; //将数值转换成string的第一种方法:c方法
    24     string a;
    25     sprintf(b,"%d",1975);
    26     a=b;
    27     cout<<a<<endl;
    28     string cc=convertToString(1976); //将数值转换成string的第二种方法:c++方法
    29     cout<<cc<<endl;
    30     string dd="2006";  //将string转换成数值的方法:c++方法
    31     int p=converFromString(dd)+2;
    32     cout<<p<<endl;
    33     return 0;
    34 }

    运行结果

    1975
    1976
    2008
  • 相关阅读:
    Ximarin.Android 百度地图
    利用Chrome浏览器 保存网页成PDF
    SQL 笔记
    windows server 2008 r2 IIS PHP
    自动化分页,HTML代码控制 思想
    simple
    testtitle
    PyQt5中中文问题的不完全解决
    ubuntu下搭建python2.7+PyQt5并实现一个小词典
    opensuse安装深度截图,深度影音和深度播放器
  • 原文地址:https://www.cnblogs.com/bearkid/p/7126849.html
Copyright © 2020-2023  润新知