std_stdlib.c

[目次 | 関数]

目次

関数一覧


   1|/**************************************************************************
   2|*  1. <<< 標準ライブラリ stdlib.h >>> 
   3|***************************************************************************/
   4|
   5|#include  <std_stdlib.ah>
   6|
   7|
   8|
   9|
  10|
  11| 
  12|/**************************************************************************
  13|  2. <<< [_itow] 数値を UNICODE にする >>> 
  14|***************************************************************************/
  15|wchar_t*  Std_Stdlib_itow( int value, wchar_t* string, int radix )
  16|{
  17|  wchar_t*  p = string;
  18|  wchar_t*  pp;
  19|  int       m;
  20|  int       bMinus;
  21|
  22|  ASSERT( 1 <= radix && radix <= 36);
  23|
  24|  bMinus = (value < 0 );
  25|  if ( bMinus )  value = -value;
  26|
  27|  /* 下の桁から数字を格納する */
  28|  if ( radix <= 10 ) {
  29|    do {
  30|      m = value % radix;
  31|      *p = m + (wchar_t)'0';
  32|      value /= radix;
  33|      p++;
  34|    } while ( value != 0 );
  35|  }
  36|  else {
  37|    do {
  38|      m = value % radix;
  39|      *p = m + ( m < 10 ?  (wchar_t)'0' : (wchar_t)'A'-10 );
  40|      value /= radix;
  41|      p++;
  42|    } while ( value != 0 );
  43|  }
  44|  if ( bMinus ) {
  45|    *p = '-';  p++;
  46|  }
  47|  *p = (wchar_t)'\0';
  48|
  49|  /* 下の桁から上の桁を入れ替える */
  50|  pp = string;  p--;
  51|  while ( pp < p ) {
  52|    m = *pp;  *pp = *p;  *p = m;
  53|    pp++;  p--;
  54|  }
  55|
  56|  return  string;
  57|}
  58|
  59|
  60|
  61| 
  62|