如何将这个字符串str[]="1234567890ABCDEF1234567890ABCDEF"
转换为A=0x12345678,B=0x90ABCDEF,C=0x12345678,D=0x90ABCDEF
这四个十六制数。
void atoi_ex(char *ch,int* &ans,int radix)
{
int num=sizeof(*ans)/sizeof(int);
int *arr=new int[num];
char *pCh=new char[9];
for(int i=0;i<num;i++)
{
strncpy(pCh,ch,8);
strcat(pCh,0);
arr[i]=atoi(pCh);
itoa(arr,pCh,radix);
ans[i]=atoi(pCh);
}
}
VC++编译通不过出现如下错误:
E:\C++文件\string01.cpp(14) : error C2664: 'itoa' : cannot convert parameter 1 from 'int *' to 'int'
This conversion requires a reinterpret_cast, a C-style cast or function-style cast
是否把arr强制转换一下,这一行是否可改为itoa((int)arr,pCH,radix);
改了之后编译通过。