www.xbdev.net
xbdev - software development
Tuesday April 14, 2026
Home | Contact | Support | Data Conversion Exammples for C and C++..
     
 

Data Conversion Exammples

for C and C++..

 


As you learn with C and C++ you can't simply 'cast' an integer to a string or a wchar to a char - you have to 'convert' the data.

In C/C++ you're working with the 'raw' data - bits and bytes - so to do any conversion - you have do it yourself or use one of the numerous libraries.


PART ONE: Decimal Conversions


Decimal To Hexadecimal


Use
_itoa()
function and set radix to 16.

<?php
char hexstring[10]; 
int number = 30;
itoa(number, hexstring, 16);

In hexstring is
1e
.

Hexadecimal To Decimal


a) You can use
strtol
function and specify base:
<?php
char *hexstring = "ABCDEF";
char *p;
int number = strtol(hexstring, &p, 16);


b) Or you can use this:
<?php
bool HexToDecimal(char* HexNumber, int& Number)
{ 
    char* pStopString; 
    Number = strtol(HexNumber, &pStopString, 16);
    return (bool)(Number != LONG_MAX);
}


Decimal to Time


<?php
char *DecToTime(float fTime, char *szTime)
{
    int nHrs, nMin, nSec;    
    fTime *= 3600;
    nHrs = (int)fTime / 3600;
    nMin = (int)(fTime - nHrs * 3600) / 60;
    nSec = (int)(fTime - nHrs * 3600 - nMin * 60);
    wsprintf(szTime, "%02d.%02d.%02d Hrs.Min.Sec.", nHrs, nMin, nSec);
    return szTime;
}




PART TWO: String Conversions


String to Hexadecimal


<?php
sscanf(string, "%04X", &your_word16);
// where string = your string and 04 = length of your string and X = hex


Hex to CString


<?php
CString Str;
unsigned char Write_Buff[1];
Write_Buff[0] = 0x01;
Str.Format("0x0%x", Write_Buff[0]);


COleVariant to CString


<?php
CString strTemp;
COleVariant Var;
Var = "FirstName";
strTemp = Var.bstrVal;
AfxMessageBox(strTemp);


CString to Char Pointer


<?php
a) CString MyString = "ABCDEF";
   char *szMyString = (char *)(LPCTSTR)MyString;

b) char *pBuffer = new char[1024];
   CString strBuf = "Test";
   pBuffer = strBuf.GetBuffer(sizeof(pBuffer));


Char Pointer to CString


<?php
char *mystring = "12345";
CString string = mystring;


Double to CString including the fractional part


<?php
CString strValue, strInt, strDecimal;
int decimal, sign;
double dValue = 4.125;
strValue = _fcvt(dValue, 6, &decimal, &sign);

// Now decimal contains 1 because there is only one digit before the .
strInt = strValue.Left(decimal);      // strInt contains 4
strDecimal = strValue.Mid(decimal);   // strDecimal contains 125

CString strFinalVal;
strFinalVal.Format("%s.%s", strInt, strDecimal);  // strFinalVal contains 4.125


Double To CString


<?php
CString strValue;
int decimal, sign;
double dValue = 123456789101112;
strValue = _ecvt(dValue, 15, &decimal, &sign);


CString To Double


<?php
strValue = "121110987654321";
dValue = atof(strValue);


CString to LPCSTR


<?php
CString str1 = _T("My String");
int nLen = str1.GetLength();
LPCSTR lpszBuf = str1.GetBuffer(nLen);
// here do something with lpszBuf...........
str1.ReleaseBuffer();


CString to LPSTR


<?php
CString str = _T("My String");
int nLen = str.GetLength();
LPTSTR lpszBuf = str.GetBuffer(nLen);
// here do something with lpszBuf...........
str.ReleaseBuffer();


CString to WCHAR*


<?php
CString str = "A string here";
LPWSTR lpszW = new WCHAR[255];

LPTSTR lpStr = str.GetBuffer(str.GetLength());
int nLen = MultiByteToWideChar(CP_ACP, 0, lpStr, -1, NULL, NULL);
MultiByteToWideChar(CP_ACP, 0, lpStr, -1, lpszW, nLen);
AFunctionUsesWCHAR(lpszW);
delete[] lpszW;


LPTSTR to LPWSTR


<?php
int nLen = MultiByteToWideChar(CP_ACP, 0, lptStr, -1, NULL, NULL);
MultiByteToWideChar(CP_ACP, 0, lptStr, -1, lpwStr, nLen);


string to BSTR


<?php
string ss = "Girish";
BSTR _bstr_home = A2BSTR(ss.c_str());


CString to BSTR


<?php
CString str = "whatever";
BSTR resultsString = str.AllocSysString();


_bstr_t to CString


#include <ANSIAPI.H>
#include <comdef.h>
_bstr_t bsText("Hai Bayram");
CString strName;
W2A(bsText, strName.GetBuffer(256), 256);
strName.ReleaseBuffer();
AfxMessageBox(strName);

char szFileName[256];
GetModuleFileName(NULL, szFileName, 256);
AfxMessageBox(szFileName);




PART THREE: Character Arrays


Char array to integer


<?php
char MyArray[20];
int nValue;
nValue = atoi(MyArray);


Char array to float


<?php
char MyArray[20];
float fValue;
fValue = atof(MyArray);


Char Pointer to double


<?php
char *str = " -343.23 "; 
double dVal; 
dVal = atof(str);


Char Pointer to integer


<?php
char *str = " -343.23 "; 
int iVal;
iVal = atoi(str);


Char Pointer to long


<?php
char *str = "99999"; 
long lVal; 
lVal = atol(str);


Char* to BSTR


<?php
char *p = "whatever";
_bstr_t bstr = p;


Float to WORD and Vice Versa


<?php
float fVar;
WORD wVar;
fVar = 247.346;
wVar = (WORD)fVar;  // Converting from float to WORD. The value in wVar would be 247

wVar = 247;
fVar = (float)fVar; // Converting from WORD to float. The value in fVar would be 247.00








 
Advert (Support Website)

 
 Visitor:
Copyright (c) 2002-2026 xbdev.net - All rights reserved.
Designated articles, tutorials and software are the property of their respective owners.