16进制的CString字符串如何转成char数组

lambition 2011-05-27 10:54:16
从编辑框获取 用户输入的 16进制数据,如0A 0B 0C 0D .....中间带空格的数据


怎么才能把它转成类似这种的 char c[] = {0x0A,0x0B.....};


...全文
421 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
Forrest 2011-05-27
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 lambition 的回复:]
引用 4 楼 oyljerry 的回复:
strtok()
字符串一个个按空格取,然后转换


strtok要的是char*
我的是CString 咋解决额
[/Quote]

那你就一个一个字符 转换咯!

想不想要我的DLL ,我发给你连同源代码! 其实很简单!
King_hhuang 2011-05-27
  • 打赏
  • 举报
回复
char c[] = {0x0A,0x0B.....};

char c[] = {10,11.....};
是一样的

你先从Edit得到输入的字符串,用GetDlgItem(IDC_EDIT1)->GetWindowText(strInput);
然后再处理strInput,处理代码如下:


CString strInput="0A 0B 0C 0D ";
CString str;
char Input[100];
memset(Input,0,100);

int nStart=0;
int nFind=0;
int nIndex=0;

strInput.MakeUpper();
while((nFind=strInput.Find(" ",nStart))>=0)
{
str = strInput.Mid(nStart,nFind-nStart);
for(int i=0; i<str.GetLength(); i++)
{
if(str[i]>='0'&&str[i]<='9')
Input[nIndex] = Input[nIndex]*16 + str[i]-'0';
else if(str[i]>='A'&&str[i]<='F')
Input[nIndex] = Input[nIndex]*16 + str[i]-'A'+10;
}

nStart=nFind+1;
nIndex++;
}

if(nStart<(strInput.GetLength()-1))
{
str = strInput.Mid(nStart,strInput.GetLength()-nStart);
for(int i=0; i<str.GetLength(); i++)
{
if(str[i]>='0'&&str[i]<='9')
Input[nIndex] = Input[nIndex]*16 + str[i]-'0';
else if(str[i]>='A'&&str[i]<='F')
Input[nIndex] = Input[nIndex]*16 + str[i]-'A'+10;
}

}
Eleven 2011-05-27
  • 打赏
  • 举报
回复
CString strText(_T("0A 0B 0C 0D 0E 0F"));
#define MAX_COUNT 256
TCHAR buf[MAX_COUNT] = {0};
int curPos = 0;
LPCTSTR pszToken = _T(" ");
CString strTmp(_T(""));
int nIndex = 0;
while(_T("") != (strTmp = strText.Tokenize(pszToken, curPos)))
{
if(nIndex >= MAX_COUNT)
break;
buf[nIndex++] = (TCHAR)_tcstoul(strTmp, NULL, 16);
}
lambition 2011-05-27
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 oyljerry 的回复:]
strtok()
字符串一个个按空格取,然后转换
[/Quote]

strtok要的是char*
我的是CString 咋解决额
Forrest 2011-05-27
  • 打赏
  • 举报
回复
我有这个转换的DLL 子程序(一经过测试,我现在还在用这个DLL),你给我分,我发给你;

我的邮箱:jjzd.263@126.com
lambition 2011-05-27
  • 打赏
  • 举报
回复
在线等啊!!!!!!!!!!!!解决马上给分
oyljerry 2011-05-27
  • 打赏
  • 举报
回复
strtok()
字符串一个个按空格取,然后转换
lambition 2011-05-27
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 oyljerry 的回复:]
itoa()转换成字符串
[/Quote]

字符串里N个数据 每一个 0A 0B
我都想变成16进制的数据

具体怎么做额?
oyljerry 2011-05-27
  • 打赏
  • 举报
回复
itoa()转换成字符串

16,473

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧