标准ANSI C库函数备忘

原创 2005年01月01日 21:42:00

读取16进制字符串函数:strtol

_CRTIMP long   __cdecl strtol(const char *, char **, int); // stdlib.h

 

void HexStrToBinary(BYTE* data, int buf_len, const char * hex_str)

{

       char * pHex = (char *)hex_str;

       BYTE * pBuf = data;

       int len = 0;

       while(pHex && pHex[0] && pHex[1] && (len++ < buf_len))

       {

              *pBuf++ = (char)strtol(pHex, &pHex, 16);

       }

       *pBuf = '/0';

}

 

void BinaryToHexStr(char * hex_str, const BYTE* data, int len)

{

       char * pHex = (char *)hex_str;

       const byte * pData = data;

       for (int i = 0; i < len; ++i)

       {

              sprintf(pHex, "%02x ", (byte)(*pData));

             

              pData ++;

              pHex += 3;

       }

       *pHex = '/0';

}

 

上述方法适合从文件里面读入一大串16进制字符串数据的转换,
如果数量很少而且是已知的,也可以这样转换:

上述方法适合从文件里面读入一大串16进制字符串数据的转换,
如果数量很少而且是已知的,也可以这样转换:

       char * pStr = "5E 34 7A";

       int n[3] = {0};

       sscanf(pStr, "%x %x %x", &n[0], &n[1], &n[2]);

 

_CRTIMP long   __cdecl strtol(const char *, char **, int); // stdlib.h

 

void HexStrToBinary(BYTE* data, int buf_len, const char * hex_str)

{

       char * pHex = (char *)hex_str;

       BYTE * pBuf = data;

       int len = 0;

       while(pHex && pHex[0] && pHex[1] && (len++ < buf_len))

       {

              *pBuf++ = (char)strtol(pHex, &pHex, 16);

       }

       *pBuf = '/0';

}

 

void BinaryToHexStr(char * hex_str, const BYTE* data, int len)

{

       char * pHex = (char *)hex_str;

       const byte * pData = data;

       for (int i = 0; i < len; ++i)

       {

              sprintf(pHex, "%02x ", (byte)(*pData));

             

              pData ++;

              pHex += 3;

       }

       *pHex = '/0';

}

 

上述方法适合从文件里面读入一大串16进制字符串数据的转换,
如果数量很少而且是已知的,也可以这样转换:

       char * pStr = "5E 34 7A";

       int n[3] = {0};

       sscanf(pStr, "%x %x %x", &n[0], &n[1], &n[2]);

 

ANSI C(C89)标准库函数手册

前言 ANSI C(C89)标准库函数共有15个头文件。这15个头文件分别为: 1.           2.         3. 4.            5.         6. ...
  • woniu3
  • woniu3
  • 2014年10月22日 16:38
  • 2006

C语言学习——ANSI C标准函数库

即C语言环境自带的变量和方法等 stdioh getchar和putchar gets和puts sprintf和sscanf stringh strcpy strlen strtok stdlibh...
  • zhengyikuangge
  • zhengyikuangge
  • 2016年10月07日 17:03
  • 1252

常用ANSI C语言标准库函数汇总(一)

常用ANSI C语言标准库函数汇总(一)C语言被发明出来时并没有什么库函数,随着C语言的流行,越来越多的厂商和组织开始提供C语言的编译器,同时把经常用到的函数封装成“库”的形式发布。后来,美国国家标准...
  • NevarMovin
  • NevarMovin
  • 2017年04月30日 12:11
  • 781

ANSI C标准中有几个标准预定义宏:

#include using namespace std; int main() { char compile_date[]=__DATE__; //编译源文件的日期 char compile_ti...
  • yanglu1270514689
  • yanglu1270514689
  • 2014年09月25日 11:48
  • 430

ANSI C、ISO C、Standard C联系与区别

做C语言开发的人,经常会遇到“ANSI C”、“ISO C”与“Standard C”三种术语,经常会让人傻傻分不清楚。博主之前按也是搞不清三者的关系,于是某天下定决心,一定要搞清楚三者的关系,先百度...
  • kelehaier
  • kelehaier
  • 2016年12月29日 11:28
  • 1174

ARM标准库

  • carry1314lele
  • carry1314lele
  • 2009年09月21日 09:57
  • 3792

ANSI C标准预定义宏 --使用与C++

ANSI C标准中有几个标准预定义宏: __FILE__     __DATE__   __TIME___    __LINE__   等 __LINE__:在源代码中插入当前源代码行号;...
  • daa20
  • daa20
  • 2014年10月21日 21:03
  • 327

ANSI C 和 POSIX介绍

标准 (ANSI C, POSIX, SVID, XPG, ...) ANSI C:这一标准是 ANSI(美国国家标准局)于 1989 年制定的 C 语言标准。 后来被 ISO(国际标准化组织)...
  • gong_1
  • gong_1
  • 2014年02月14日 15:15
  • 1423

ANSI C/C++基本数据类型:

学了C然后C++,然后MFC/Windows,然后是C#,其中数据类型很多,由基本类型衍生的typedef类型也N多。熟知基本数据类型是我们正确表达实际问题中各种数据的前提,因此我分类总结了一下C/C...
  • rns521
  • rns521
  • 2011年11月15日 19:36
  • 1071

内存对齐与ANSI C中struct型数据的内存布局 选择自 soloist 的 Blog

当在C中定义了一个结构类型时,它的大小是否等于各字段(field)大小之和?编译器将如何在内存中放置这些字段?ANSI C对结构体的内存布局有什么要求?而我们的程序又能否依赖这种布局?这些问题或许对不...
  • yanglight
  • yanglight
  • 2005年12月03日 08:38
  • 457
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:标准ANSI C库函数备忘
举报原因:
原因补充:

(最多只允许输入30个字)