char base = '\0x00'; int iWant = base + iSource;//iSource为你想转化的整数,你要自己保证他不超出256 最苯的方法:)
char c; int n; n = itoa(c);
Example /* ITOA.C: This program converts integers of various * sizes to strings in various radixes. */#include <stdlib.h> #include <stdio.h>void main( void ) { char buffer[20]; int i = 3445; long l = -344115L; unsigned long ul = 1234567890UL; _itoa( i, buffer, 10 ); printf( "String of integer %d (radix 10): %s\n", i, buffer ); _itoa( i, buffer, 16 ); printf( "String of integer %d (radix 16): 0x%s\n", i, buffer ); _itoa( i, buffer, 2 ); printf( "String of integer %d (radix 2): %s\n", i, buffer ); _ltoa( l, buffer, 16 ); printf( "String of long int %ld (radix 16): 0x%s\n", l, buffer ); _ultoa( ul, buffer, 16 ); printf( "String of unsigned long %lu (radix 16): 0x%s\n", ul, buffer ); } OutputString of integer 3445 (radix 10): 3445 String of integer 3445 (radix 16): 0xd75 String of integer 3445 (radix 2): 110101110101 String of long int -344115 (radix 16): 0xfffabfcd String of unsigned long 1234567890 (radix 16): 0x499602d2用其中的 itoa() 函数
int n;
c = n;
前者的话,可以用itoa,或者CString的Format或者sprintf等等。
后者嘛,可以用移位操作来逐段截取
int n;
c = n;//这样不能直接等吧
int iWant = base + iSource;//iSource为你想转化的整数,你要自己保证他不超出256
最苯的方法:)
int n;
n = itoa(c);
* sizes to strings in various radixes.
*/#include <stdlib.h>
#include <stdio.h>void main( void )
{
char buffer[20];
int i = 3445;
long l = -344115L;
unsigned long ul = 1234567890UL; _itoa( i, buffer, 10 );
printf( "String of integer %d (radix 10): %s\n", i, buffer );
_itoa( i, buffer, 16 );
printf( "String of integer %d (radix 16): 0x%s\n", i, buffer );
_itoa( i, buffer, 2 );
printf( "String of integer %d (radix 2): %s\n", i, buffer ); _ltoa( l, buffer, 16 );
printf( "String of long int %ld (radix 16): 0x%s\n", l,
buffer ); _ultoa( ul, buffer, 16 );
printf( "String of unsigned long %lu (radix 16): 0x%s\n", ul,
buffer );
}
OutputString of integer 3445 (radix 10): 3445
String of integer 3445 (radix 16): 0xd75
String of integer 3445 (radix 2): 110101110101
String of long int -344115 (radix 16): 0xfffabfcd
String of unsigned long 1234567890 (radix 16): 0x499602d2用其中的 itoa() 函数
现在我想把这个数组中的数按顺序连接起来,成一个字符串,比如成“56”。我用的是CString str;
str.SetAi 但是这个函数的第二个参数是char,用sprintf好像得到的是char *。
请问怎么办?那有没有更好的办法呢?其实我的最终目的是把上面这个数组中的数连起来成一整数,比如成 56
CString str,strTmp;
for(int i = 0;i<sizeof(n)/sizeof(int);i++)
{
strTmp = n[i] + 48;
str += strTmp;}
AfxMessageBox(str);
int n[3] = {12,21,31};
CString str;
char sz[10];
for(int i = 0;i<sizeof(n)/sizeof(int);i++)
{
_itoa(n[i],sz,10);
str += sz;
}
AfxMessageBox(str);
CString tmp,str;
tmp = str = _T("");
for( int i = 0; i < MAX ; i++ )
{
tmp.Format("%d",n[i]);
str += tmp;
}//str is you want ;
int a = 0;
int b = 1;
int i = 0;
for(i = sizeof(n)/sizeof(n[0])-1; i >=0; i--)
{
a += (n[i] * b);
b *= 10;
}
..............
int nMod;
int nTemp = n;
int nCount;for (int i = 0; nTemp > 0; i ++)
{
nTemp = nTemp/10;
if (nTemp <= 0)
nCount = i+1;
}nTemp = n;
char szNum[nCount+1];
int j = nCount;
szNum[j--] = '\0';while (nTemp > 0)
{
nMod = nTemp % 10;
nTemp = nTemp/10;
szNum[j--] = nMod + '0';
}