求用C语言编写将“hello”这样的字符串转化为十六进制的代码实现,急急急!!!
#include "stdio.h"
void main()
{
char HEX[16] = {'0', '1', '2', 3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'};
int num;
printf("请输入一个十进制整数:");
scanf("%d",&num);
int a[10];
int i=0;
int yushu;
while(num>0)
{
yushu=num%16;
a[i]=yushu;
num=num/16;
i++;
}
printf("转化为十六进制的数为:");
for(;i>=0;i--)//倒序输出
{
printf("%c",HEX[a[i]]);
}
printf("\n");
}
#include<stdio.h>
void main()
{
char str[]="abhello";
char *p=str;
while(*p)
{
printf("%x ",*p++);
}
}
char *strtohex(char *str, char *hex)
{
char *flag = hex;
char tmp[2] ={0};
while(*str)
{
sprintf(tmp, "%hhx", *str++);
*hex++ = tmp[0];
*hex++ = tmp[1];
}
*hex = '\0';
return flag;
}
其实就是 ysuwood 的答案,没验证。您可以对照一下ASCII表,看转换是否正确