1. 程式人生 > >string基本字符系列容器

string基本字符系列容器

相互 文件 tom name 轉換 con tor 輸入與輸出 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

string基本字符系列容器