c++,中怎么样将字符串,转化为十六进制?? 用什么函数??

 我来答
liubird
2011-12-06 · TA获得超过1932个赞
知道小有建树答主
回答量:898
采纳率:100%
帮助的人:936万
展开全部
你是要把字符串以16进制的形式打印出来吗?
下面可以实现:
char c[] = "abcdefg123456";
char *p = c;
for(int i=0; c[i]!='\0'; i++) {
printf("%lx", *(p++)); //将字符以16进制的形式显示
if(i%4 == 3) printf(" ");
}
xoalyg
2011-12-07 · TA获得超过4178个赞
知道大有可为答主
回答量:2356
采纳率:100%
帮助的人:2379万
展开全部
没有现成的系统函数可用,自己编写吧。
假定字符串是'0’~'9'的阿拉伯数字组成的,即字符串是十进制数字的组合,那么可将该串转换为十进制数,再以0X格式输出概述即可。
#include <stdio.h>

unsigned atol(char *s) {
unsigned i,n = 0,num = 0;
char *p = s;
while(*p++) ++n;
for(i = 0; i < n;++i) {
if((s[i] >= '0') && (s[i] <= '9')) // 只转换阿拉伯数字,其他字符弃之
num = 10*num + s[i] - '0';
}
return num;
}

int main() {
char s1[] = "12908766";
char s2[] = "1a87655.6";
unsigned num = atol(s1);
printf("\"%s\" = (%lu) = 0X%X\n",s1,num,num);
num = atol(s2);
printf("\"%s\" = (%lu) = 0X%X\n",s2,num,num);
return 0;
}
"12908766" = (12908766) = 0XC4F8DE
"1a87655.6" = (1876556) = 0X1CA24C
Press any key to continue
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
知道高高手无敌
高粉答主

2015-10-14 · 每个回答都超有意思的
知道大有可为答主
回答量:1.5万
采纳率:6%
帮助的人:1811万
展开全部
char a[]="a6756";
int m;
m=hexstr(a);
int hexstr(char *m){
int d=0;
while(*m){
if(*m>='0' && *m<='9') d=d*16+(*m-'0');
else if(*m>='a' && *m<='f')d=d*16+*m-'a';
else if(*m>='A' && *m<='Z')d=d*16+*m-'A';
else return 0;
m++;
}
return d;
}
字符串主要用于编程,概念说明、函数解释、用法详述见正文,这里补充两点:1.Free Pascal中的Ansistring只能看成整体,很多函数无法使用,就算是提取单个元素也很麻烦,所以除非万不得已就不要用;2.字符串在存储上类似字符数组,所以它每一位的单个元素都是可以提取的,如s=“abcdefghij”,则s[1]=“a”,s[10]="j",而字符串的零位正是它的长度,如s[0]=10(※上述功能Ansistring没有。)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友d580670
2011-12-07 · TA获得超过1983个赞
知道大有可为答主
回答量:2054
采纳率:82%
帮助的人:702万
展开全部
char a[]="a6756";
int m;
m=hexstr(a);
int hexstr(char *m){
int d=0;
while(*m){
if(*m>='0' && *m<='9') d=d*16+(*m-'0');
else if(*m>='a' && *m<='f')d=d*16+*m-'a';
else if(*m>='A' && *m<='Z')d=d*16+*m-'A';
else return 0;
m++;
}
return d;
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
hlslml77
2011-12-06
知道答主
回答量:13
采纳率:0%
帮助的人:2万
展开全部
没有函数只能自己编程实现
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式