www.xbdev.net
xbdev - software development
Monday April 21, 2025
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.

char hexstring[10]; 
int number 30;
itoa(numberhexstring16);

In hexstring is
1e
.

Hexadecimal To Decimal


a) You can use
strtol
function and specify base:
char *hexstring "ABCDEF";
char *p;
int number strtol(hexstring, &p16);


b) Or you can use this:
bool HexToDecimal(charHexNumberintNumber)

    
charpStopString
    
Number strtol(HexNumber, &pStopString16);
    return (bool)(
Number != LONG_MAX);
}


Decimal to Time


char *DecToTime(float fTimechar *szTime)
{
    
int nHrsnMinnSec;    
    
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."nHrsnMinnSec);
    return 
szTime;
}




PART TWO: String Conversions


String to Hexadecimal


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


Hex to CString


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


COleVariant to CString


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


CString to Char Pointer


aCString MyString "ABCDEF";
   
char *szMyString = (char *)(LPCTSTR)MyString;

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


Char Pointer to CString


char *mystring "12345";
CString string mystring;


Double to CString including the fractional part


CString strValuestrIntstrDecimal;
int decimalsign;
double dValue 4.125;
strValue _fcvt(dValue6, &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"strIntstrDecimal);  // strFinalVal contains 4.125


Double To CString


CString strValue;
int decimalsign;
double dValue 123456789101112;
strValue _ecvt(dValue15, &decimal, &sign);


CString To Double


strValue "121110987654321";
dValue atof(strValue);


CString to LPCSTR


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


CString to LPSTR


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


CString to WCHAR*


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

LPTSTR lpStr str.GetBuffer(str.GetLength());
int nLen MultiByteToWideChar(CP_ACP0lpStr, -1NULLNULL);
MultiByteToWideChar(CP_ACP0lpStr, -1lpszWnLen);
AFunctionUsesWCHAR(lpszW);
delete[] lpszW;


LPTSTR to LPWSTR


int nLen MultiByteToWideChar(CP_ACP0lptStr, -1NULLNULL);
MultiByteToWideChar(CP_ACP0lptStr, -1lpwStrnLen);


string to BSTR


string ss "Girish";
BSTR _bstr_home A2BSTR(ss.c_str());


CString to BSTR


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(bsTextstrName.GetBuffer(256), 256);
strName.ReleaseBuffer();
AfxMessageBox(strName);

char szFileName[256];
GetModuleFileName(NULLszFileName256);
AfxMessageBox(szFileName);




PART THREE: Character Arrays


Char array to integer


char MyArray[20];
int nValue;
nValue atoi(MyArray);


Char array to float


char MyArray[20];
float fValue;
fValue atof(MyArray);


Char Pointer to double


char *str " -343.23 "
double dVal
dVal atof(str);


Char Pointer to integer


char *str " -343.23 "
int iVal;
iVal atoi(str);


Char Pointer to long


char *str "99999"
long lVal
lVal atol(str);


Char* to BSTR


char *"whatever";
_bstr_t bstr p;


Float to WORD and Vice Versa


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-2025 xbdev.net - All rights reserved.
Designated articles, tutorials and software are the property of their respective owners.