C++中怎么样把字符串转化为16进制数

 我来答
百度网友b0e28cae4
推荐于2016-09-30 · TA获得超过4016个赞
知道大有可为答主
回答量:1275
采纳率:85%
帮助的人:610万
展开全部
#include <iostream>
#include <string>
using namespace std;
char getCharByValue(int value)
{
if(value>=0 && value<=9)
return '0' + value;
else if(value>=10 && value <=35)
return 'A' + (value-10);
else
return 'a' + (value-36);
}
string toHex(string str)
{
string hex="";
for(int i=0;i<str.length();i++)
{
int low = str[i]%16;
int hight = str[i]/16;
hex += string(1,getCharByValue(hight)) + string(1,getCharByValue(low));
}
return hex;
}
int main(int argc, char *argv[])
{
string str="computer";
cout << toHex(str)<<endl;
return 0;
}
网络工程哥
2012-05-05 · TA获得超过109个赞
知道答主
回答量:172
采纳率:0%
帮助的人:106万
展开全部
#include<iostream>
{char ch;
cin>>ch;
cout.sef(ios::hex);
cout<<"hex:"<<ch<<endl;
追问
我是要把那个16进制保存起来,比如 computer对应636F6D7075746572.。。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
xunxunnuaa
2012-05-07 · TA获得超过651个赞
知道小有建树答主
回答量:548
采纳率:0%
帮助的人:445万
展开全部
char buf[512] = {0};
char* src = "computer";
FILE* f = fopen("save.txt", "w");
for(int i = 0; i < strlen(src); i++)
{
sprintf(buf + strlen(buf), "%.2x", src[i]);
}

fwrite(buf, strlen(buf), 1, f);
fclose(f);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
扛氨铺撕旱朴Cd
2012-05-07
知道答主
回答量:64
采纳率:0%
帮助的人:21.8万
展开全部
速度
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式