C++ 字符型ASCII码 转成字符串
发布网友
发布时间:2022-05-24 08:06
我来回答
共3个回答
热心网友
时间:2023-10-09 03:43
#include <stdio.h>
char* convert(char p[])
{
int i=0;
while(p[2*i]!='\0'&&p[2*i+1]!='\0')
{
char c = p[2*i];
if(c<='9')
p[i] = (c-'0')<<4;
else if(c<='F')
p[i] = (c-'A'+10)<<4;
else
p[i] = (c-'a'+10)<<4;
c = p[2*i+1];
if(c<='9')
p[i] += (c-'0');
else if(c<='F')
p[i] += (c-'A'+10);
else
p[i] += (c-'a'+10);
i++;
}
p[i] = '\0';
return p;
}
void main()
{
char judge[] = "3331326120C7B0baf3";//只能是字符串的ASCII码形式的数据,舍去0x前缀和空格等
printf("转换前:[%s]\n",judge);
printf("转换后:[%s]\n",convert(judge));
}
转换前:[3331326120C7B0baf3]
转换后:[312a 前后]
热心网友
时间:2023-10-09 03:43
这是 c++ ?
方法可以直接取出每一个字符然后 -0x30 得到对应的数然后按权展开得到十进制数直接赋给 char 类型变量。
热心网友
时间:2023-10-09 03:44
先用atoi转换为int
再强转为char
估计还有更好的办法吧