[英]Convert char with hex value to String
如果我有以下角色:
wchar_t c = '\x0A'
有什么簡單的方法可以將其轉換為:
wchar_t dst[] ==> "0A"
基本上,c的十六進制值變為字符串值。
c
的整數值為0x0A
(以10
為底的10)。 您可以使用sprintf
將其格式化為十六進制:
wchar_t c = '\x0A';
int c_val = c;
char string[3];
sprintf( string, "%.2X", c_val );
請注意,不需要中間c_val
變量,僅為了說明而添加
或者您可以手動執行以下操作:
int c_low = c & 0x0F;
int c_high = ( c & 0xF0 ) >> 4;
...translate c_low and c_high to its textual representation...
一個簡單的十六進制可以很容易地寫出來。 這將目標字符串作為輸入參數:
unsigned int hexify(const wchar_t * src, char * dst, unsigned int dstlen)
{
static const char alphabet[] = "0123456789ABCDEF";
unsigned int i = 0;
while (*src && 2*i + 1 < dstlen)
{
dst[2*i] = alphabet[*src / 16];
dst[2*i+1] = alphabet[*src % 16];
++src;
++i;
}
dst[2*i] = 0;
return i;
}
用法:
char s[100];
hexify(some_wstr, s, 100);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.