想將Real陣列中的全部內容賦給一個字串,最后想要實作的結果為:sfvalue=https://bbs.csdn.net/topics/“F2F10B000001F3F1F3F2F3F30102471E”(也就是想實作將一串16進制報文轉成16進制字串,不確定這個描述是否正確)。用如下代碼,會出現下面的問題,也就是賦的程序中遇到0(也就是0x00),字串就認為是'\0'結束了,最后得到的結果就是sfvalue=https://bbs.csdn.net/topics/“F2F10B”,0后面的都沒有了,這個問題有沒有解決辦法?求各位大神指教!
char Real[128] = { 0xF2,0xF1,0x0B,0x00,0x00,0x01,0xF3,0xF1,0xF3,0xF2,0xF3,0xF3,0x01,0x02,0x47,0x1E };
string sfvalue = Real;
[原始視圖] = {_Myval2={_Bx={_Buf=0x0547fb30 "蝰\v" _Ptr=0x000bf1f2 <讀取字串的字符時出錯。> _Alias=0x0547fb30 "蝰\v" } _Mysize=...} }
uj5u.com熱心網友回復:
#include <stdio.h>
#include <iostream>
#include <string>
using namespace std;
char Real[128] = { 0xF2,0xF1,0x0B,0x00,0x00,0x01,0xF3,0xF1,0xF3,0xF2,0xF3,0xF3,0x01,0x02,0x47,0x1E };
int i,L=16;
char hexstr[260];
string sfvalue;
int main() {
for (i=0;i<L;i++) sprintf(hexstr+i*2,"%.2X",(unsigned char)Real[i]);
hexstr[L*2]=0;
sfvalue=https://bbs.csdn.net/topics/string(hexstr);
cout<<"["<<sfvalue<<"]"<<endl;//[F2F10B000001F3F1F3F2F3F30102471E]
return 0;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/268361.html
標籤:C++ 語言
