C++之stringstream分割和类型转换

#include<iostream>
#include<string>
#include<sstream>
#include<vector>
using namespace std;
int main(){
 string s="hello my name is C++";
 stringstream ss(s);
 string word;
 vector<string>vv;
 while(ss>>word){
  
  vv.push_back(word);
 }
 
 for(vector<string>::iterator iter=vv.begin();iter!=vv.end();++iter){
  cout<<*iter<<endl;
 }
 cout<<word<<endl;
 cout<<endl;
 system("pause");

 return 0;
}

 #include<iostream>
#include<string>
#include<sstream>
#include<vector>
using namespace std;
int main(){
 string a="1 2 3 4 5 6 7 8 9 10";
 stringstream ss(a);
 vector<int>vv;
 int word;
 while(ss>>word){
  vv.push_back(word);
 }
 
 //vv[0]=6;
 for(vector<int>::iterator iter=vv.begin();iter!=vv.end();++iter){
  cout<<*iter<<endl;
 }
 system("pause");
 return 0;
}

 

#include<iostream>

#include<sstream>

#include<string>

using namespace std;

int main(){

string s="123";

int a;

stringstream s;

s<<s;

s>>a;

cout<<a;//此时输出123,a的值为整形123

 return 0;

}

 也可以用这种方法转换:

#include<iostream>
#include<string>
using namespace std;
long cifang(int a){
 long ji=1;
 for(int i=0;i<a;++i){
  ji*=10;
 }
 return ji;
}
long change(char *p){
 long zhi=0;
 for(int j=0,x=strlen(p)-1;j<strlen(p);++j,--x){
  zhi+=(p[j]-'0')*cifang(x);
 }
 return zhi;
}
int main(){
 char *p="356";
 cout<<change(p)+1<<endl;
 
 return 0;  
}

 

也可以使用atoi函数

#include<iostream>
#include<string>
using namespace std;
int main(){
 string s="-1234";
 int x=atoi(s.c_str());
 cout<<x<<endl;
 system("pause");
 return 0;
}

 

你可能感兴趣的:(C++,String,iterator,System)