C++数据类型转换基础

Cstring 转换 char *

Cstring str;

char * charstr;

charstr = (LPSTR)(LPCTSTR)str; 

 

Cstring转换char[200]

void trans ( CString stra)

{

    char cont[200];

    int length = stra.GetLength();  //获取Cstring内容的长度

for(int i=0;i<length;i++)  

{  

cont[i] = stra.GetAt(i);  

}  

cont[i] = '\0';  

}

 

CStringint

Cstring cstr; 

int sint;

sint = atoi(cstr)//接收空格之前的数字,遇到空格就不再显示以后的数字

 

CStringfloat

Cstring cstr; 

float sfloat;

sint = atoi(sfloat) 

 

char *BYTE[]

void CGameDLG::OnButton1() 

{

CString strposX;

char *markCode = "asdf156aw4ef21asdf65a4";//定义一个char*

if (strlen(markCode) % 2 != 0) //判断是否为偶数

{

AfxMessageBox("请输入双数个字节");

return ;

}

    int len = strlen(markCode) / 2; //特征码长度

    BYTE *m_code = new BYTE[len];//开辟一个新空间

    for (int k = 0; k < len; k++)//将特征码转换成byte

{

        char c[] = {markCode[k*2], markCode[k*2+1], '\0'};//每次提取2个字符出来

        m_code[k] = (BYTE)::strtol(c, NULL, 16);//将这2个字符传给m_code[k]

 }

for (int j = 0;j<len;j++)//弹出信息框检查是否写正确了

{

strposX.Format("%p",m_code[j]);//把第j次的数用16进制写到信息框的内容中

AfxMessageBox(strposX);//弹出信息框

}

   delete m_code;  //删除指针内容

m_code = NULL;//指针指向空

}

 

char *string

#include <iostream>

#include <string>

using namespace std;

 

void main()

{

char * CtoS = "abcdef1234";

string word = CtoS;

cout<<word;

}//输出的结果是"abcdef1234" 

 

char * 转换 Cstring 

CString str;

char * charstr;

charstr=”this is a str”;

str=charstr; 

 

BYTE[]转换char*

c[i] = (char) (b[i] & 0xff)  

 

string转 const char *

#include <iostream>

#include <string>

using namespace std;

void main()

{

string word = "abcdef1234";

const char * CtoS =word.c_str();

cout<<CtoS;

}

 

Dword转换Cstring

intCstring 

 

intCstring

CString intTOcstring(int abcd )

{

CString transform,result;

transform.Format("结果为:%u",abcd);

return transform;

} //如果abcd1234transfor为文本型“结果为:1234”,如果abcd为 -1234transfor为文本型“结果为:4294966062 返回时是一个232次方减去这个负数的绝对值。

 

string或者char Cstring

Cstring cstr;  //或者是char 

string str;

cstr.format(”%s”, str);

 

 

 char *BYTE *

void changecode(char *markCode,BYTE *m_code,int len)//把代码转换为字节集

{

for (int i = 0; i < len; i++)//遍历这么长度的个数的指针

 {

  char c[] = {markCode[i*2], markCode[i*2+1], '\0'};//定义一个字节的特征码,保存到char

  m_code[i] = (BYTE)::strtol(c, NULL, 16);//m_code变为16进制BYTE型的

  }

}

char[]字符相加

void CGameDLG::OnButton1() 

{

    char a[]="abc";

    char b[]="def";

    strcat(a,b);

AfxMessageBox(a);

}

 

posted @ 2013-07-31 15:56  GOD攀  阅读(428)  评论(0编辑  收藏  举报