zoukankan      html  css  js  c++  java
  • Linux c字符串中不可打印字符转换成16进制

    本文由 www.169it.com 搜集整理

    如果一个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进制则表示为不可打印字符,如果为可打印字符则直接显示。

    文章来源:Linux c字符串中不可打印字符转换成16进制

  • 相关阅读:
    数据库常用术语
    灾备模式的基本体系架构
    linux下的c++开发
    视图矩阵的推导-opengl应用
    抓包实例
    以软件推动工业进步 -嵌入式学习网站
    web 前端 转盘界面
    web 汇率
    xml
    高性能网站架构设计之缓存篇(4)- 主从复制
  • 原文地址:https://www.cnblogs.com/besty/p/4076331.html
Copyright © 2011-2022 走看看