string基本字符系列容器
Posted 糖小俊
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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基本字符系列容器的主要内容,如果未能解决你的问题,请参考以下文章
TypeScript系列教程13String 字符串对象的基本使用