本文由 www.169it.com 蒐集整理html
若是一個C字符串中同時包含可打印和不可打印的字符,若是想將這個字符串寫入文件,同時方便打開文件查看或者在控制檯中打印出來不會出現亂碼,那麼能夠將字符串中的不可打印字符轉換成16進制,此處提供一個函數供使用:函數
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
void
printhex(unsigned
char
*src,
int
len)
{
if
(src==NULL)
{
return
;
}
if
(len>(1024*1024*3-1))
{
return
;
}
char
x[1024*1024*3]={0};
int
i=0;
for
(i=0;i<len;i++)
{
char
tmp[10]={0};
if
(isprint(src[i]))
{
snprintf(tmp,8,
"%c"
,src[i]);
strcat
(x,tmp);
}
else
{
snprintf(tmp,8,
"(%X)"
,src[i]);
strcat
(x,tmp);
}
}
printf
(
"%s"
,x);
return
;
}
|
經過這個函數,咱們能夠方便地在控制檯打印出二進制文件的內容並加以分析,若是爲16進制則表示爲不可打印字符,若是爲可打印字符則直接顯示。spa
文章來源:Linux c字符串中不可打印字符轉換成16進制code