关于c++16进制字符串与ASCII字符串的相互转换
程序员文章站
2024-03-18 18:20:10
...
最近在通过SOCKET模拟一个客户端,利用多线程发送心跳包和接受服务端的发过来的数据并进行处理回复。在进制转换上弄得很无奈,现在解决了
//普通字符串转换程16进制字符串
int str2hexstr(string &str){
char chars[20] = "0123456789ABCDEF";
char ll[255];
int n;
for(int i=0;i<str.length();i++){
int kk=(int)str[i];
n=(kk&0xf0)>>4;
ll[2*i]=chars[n];
n=kk&0x0f;
ll[2*i+1]=chars[n];
}
cout<<"========="<<ll<<endl;
return 1;
}
//16进制字符串转换普通字符串
string hexStringToString(string& hexStr)
{
cout<<"要转换的数据是"<<hexStr<<endl;
string ret;
char asd[255];
int n;
string hexString = "0123456789abcdef";
for(int i=0;i<hexStr.length()/2;i++){
n=hexString.find(hexStr.at(2*i))*16+hexString.find(hexStr.at(2*i+1));
ret.insert(i,1,(char)n);
}
return ret;
}
关于string类型还是char*或char[]自行琢磨进行改动。。。。。。
上一篇: Java字符输入(FileWriter)输出(FIleReader)流
下一篇: JSON转换为对象