将一个整数转换为16进制的字符串

在Windows下面有_ultoa_s函数的将一个整数转换为16进制的字符串,
在Linux下面没有这个函数,需要用到sprintf这个函数,如下代码所示

#include 
#include 
#include 


//将一个整数转换为16进制的字符串

using namespace std;
int main(int argc, char* argv[])
{
  if (argc < 2)
  {
    printf("Usage: ./_ultoa_s [int_number]\n");
    return -1;
  }
  unsigned int n = atoi(argv[1]);
  char ss[9] = {'0'};

  sprintf(ss, "%x", n);
  printf("ss:%s\n", ss);

  return 0;
}

执行效果如下

bo@bo-pad:~/tmp$ ./_ultoa_s 10
ss:a
bo@bo-pad:~/tmp$ ./_ultoa_s 11
ss:b
bo@bo-pad:~/tmp$ ./_ultoa_s 12
ss:c
bo@bo-pad:~/tmp$ ./_ultoa_s 15
ss:f
bo@bo-pad:~/tmp$ ./_ultoa_s 1515
ss:5eb
bo@bo-pad:~/tmp$ ./_ultoa_s 151515
ss:24fdb
bo@bo-pad:~/tmp$ ./_ultoa_s 15151515
ss:e7319b
bo@bo-pad:~/tmp$

你可能感兴趣的:(纯编程,Linux)