C++ vector模板与string 和 char 之间相互转换
C++ vector模板与string 和 char 之间相互转换
http://blog.csdn.net/woniugui/article/details/5862176
最近学c++,总遇到数据类型的转换的问题,c++内部提供了很好的数据类型机制,非常便利,然而一下子从c转到c++,总会碰到数据类型不兼容的问题,这就需要进行数据转换,下面就是我做的几个数据类型相互转换,已经在visual studio 2010 上调试通过;
各种数据类型的转换:
string ch("iloveyou");
//memcpy(&ta,&ch,1);
vector <char> ta;
ta.resize(ch.size());
ta.assign(ch.begin(),ch.end());
ch.clear();
ch.assign(ta.begin(),ta.end());
char cha[]="iloveyou";
char* chab = new char(100);
vector <char> tb;
tb.resize(sizeof(cha));
tb.assign(cha,cha+sizeof(cha));
vector <int> v1;
vector <int>::iterator lter;
v1.resize(sizeof(cha));
v1.assign(cha,cha+sizeof(cha));
lter=v1.begin();
/*v1.push_back(65);
v1.push_back(66);
lter=v1.begin();
*/
char *pch = new char[3];
pch[0]=*lter;
lter++;
pch[1]=*lter;
pch[2]=0;
// #include <iostream> #include <string> #include <vector> using namespace std; int main(int argc, char* argv[]) { { string ch("iloveyou"); //memcpy(&ta,&ch,1); vector <char> ta; ta.resize(ch.size()); ta.assign(ch.begin(),ch.end()); vector <char>::iterator it=ta.begin(); for(;it!=ta.end();it++) { cout<<*it<<endl; } cout<<"--------------------"<<endl; //ch.clear(); ch=""; ch.assign(ta.begin(),ta.end()); cout<<ch.c_str()<<endl; return 0; /* i l o v e y o u -------------------- iloveyou Press any key to continue */ } if(false) { char cha[]="iloveyou"; char* chab = new char(100); vector <char> tb; tb.resize(sizeof(cha)); tb.assign(cha,cha+sizeof(cha)); // vector <char>::iterator it=tb.begin(); for(;it!=tb.end();it++) { cout<<*it<<endl; } cout<<"--------------------"<<endl; ///////////////////////////////////// /* i l o v e y o u */ } return 0; }

浙公网安备 33010602011771号