1 #include <iostream>
2 #include<string>
3 #include<vector>
4 #include<algorithm>
5 using namespace std;
6
7
8 int main(int argc, char** argv) {
9 string s;
10 char ss[5000];
11 //scanf的输入速度比cin快得多
12 //scanf是c语言的函数,不支持string对象
13 scanf("%s",&ss);
14 //把整个字符数组赋值给string对象
15 s=ss;
16 cout<<s<<endl;
17 //输出字符对象
18 s=s+'a'; //在string对象尾部添加一个a
19 s=s+"123";
20 s.append("123"); //与+具有相同的功能
21 s="123456";
22 string::iterator it;
23 it=s.begin();
24 s.insert(it+1,'p'); //把p插入到第一个字符前
25 cout<<s<<endl;
26 cout<<s[0]<<endl; //可用下标来访问string对象的元素
27 s.erase(it,it+4); //删除0~4区间的所有元素
28 s=""; //清空字符串
29 s="abc123456";
30 //从第3个开始,将连续的3个字符替换为"good"
31 //即将"123"替换为"good"
32 s.replace(3,3,"good");
33 cout<<s<<endl;
34 s="cat dog cat";
35 //查找第一个字符为'c',返回下标值
36 cout<<s.find('c')<<endl;
37 //查找第一个子串为"c",返回下标值
38 cout<<s.find("c")<<endl;
39 //s与"cat"字符串比较,大返回1,等于返回0,小于返回-1
40 cout<<s.compare("cat")<<endl;
41 //将字符串s反向排序
42 reverse(s.begin(),s.end());
43 cout<<s<<endl;
44 //string对象可以作为vector向量的元素,类似于字符串数组
45 vector<string> v;
46 v.push_back("Jack");
47 v.push_back("Mike");
48 v.push_back("Tom");
49 cout<<v[0]<<endl;
50 cout<<v[1]<<endl;
51 cout<<v[2]<<endl;
52 cout<<v[0][0]<<endl;
53 cout<<v[1][0]<<endl;
54 cout<<v[2].length()<<endl;
55 //string类型的数字化处理
56 s="1234059";
57 int i;
58 int sum=0;
59 for(i=0;i<s.length();i++)
60 {
61 if(s[i]=='0')sum+=0;
62 else if(s[i]=='1') sum+=1;
63 else if(s[i]=='2') sum+=2;
64 else if(s[i]=='3') sum+=3;
65 else if(s[i]=='4') sum+=4;
66 else if(s[i]=='5') sum+=5;
67 else if(s[i]=='6') sum+=6;
68 else if(s[i]=='7') sum+=7;
69 else if(s[i]=='8') sum+=8;
70 else if(s[i]=='9') sum+=9;
71 }
72 cout<<sum<<endl;
73 char sss[100];
74 //输入字符串到字符数组中
75 scanf("%s",&sss);
76 //字符数组赋值给字符串对象
77 s=sss;
78 //用printf输出字符串对象,要采用c_str()方法
79 printf(s.c_str()); //cout<<s<<endl; 用cout输出字符串对象
80 cout<<endl;
81 //用printf输出字符数组
82 printf("%s",sss); //cout<<sss<<endl; 用cout输出字符数组
83 cout<<endl;
84 //sscanf把一个字符串按你的需要的方式分离出子串
85 string s1,s2,s3;
86 char sa[100],sb[100],sc[100];
87 //把字符串分成子串,分隔符为空格
88 sscanf("abc 123 pc","%s %s %s",sa,sb,sc);
89 s1=sa;
90 s2=sb;
91 s3=sc;
92 cout<<s1<<" "<<s2<<" "<<s3<<endl;
93 //用字符串分离成数字,分隔符为空格
94 //当用到数字的时候,和scanf一样,它要传地址
95 int a,b,c;
96 sscanf("1 2 3","%d %d %d",&a,&b,&c);
97 cout<<a<<" "<<b<<" "<<c<<endl;
98 //将字符串分离成数字,分隔符为“,”和“$”
99 //当用到数字的时候,跟 scanf 一样,它要传指针地址
100 int x,y,z;
101 sscanf("4,5$6","%d,%d$%d",&x,&y,&z);
102 cout<<x<<" "<<y<<" "<<z<<endl;
103 return 0;
104 }