C++ vector模板与string 和 char 之间相互转换

C++ vector模板与string 和 char 之间相互转换

http://blog.csdn.net/woniugui/article/details/5862176

原创 2010年09月03日 20:26:00

最近学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;
}

 

 

posted @ 2018-03-20 15:42  sky20080101  阅读(379)  评论(0)    收藏  举报