【摘】用C实现将数组转换为字符串

it2022-05-09  32

代码 #include  < stdio.h > #include  < stdlib.h > char   * digitToAlpha ( int  val,  char   * buf, unsigned radix); int  main( int  argc,  char   * argv[]){   int  iNum = 1000 ;   char  strNum[ 10 ] = "" ;  digitToAlpha(iNum,strNum, 10 );  printf( " %s\n " ,strNum);    system( " PAUSE " );       return   0 ;} /* 功能:将数值转换为字符串参数:第一个是要转化的整数        第二个是转化后的字符串     第三个是要转化整数的基数,就是说如果基数是10,就可以直接转化,如果不是10,是其他值(2-36之间),则先把该整数转化为该基数的数后,再转化为字符串 */ char   * digitToAlpha ( int  val,  char   * buf, unsigned radix) {      char   * p;  /*  pointer to traverse string  */       char   * firstdig; /*  pointer to first digit  */       char  temp;  /*  temp char  */      unsigned digval;  /*  value of digit  */      p  =  buf;      if (val < 0 )    {          /*  negative, so output '-' and negate  */           * p ++=   ' - ' ;         val  =  (unsigned  long )( - ( long )val);     }     firstdig  =  p; /*  save pointer to first digit  */       do  {         digval  =  (unsigned)(val % radix);         val  /= radix;  /*  get next digit  */           /*  convert to ascii and store  */           if  (digval  >   9 )              * p ++   =  ( char ) (digval  -   10   +   ' a ' );  /*  a letter  */           else               * p ++   =  ( char ) (digval  +   ' 0 ' );  /*  a digit  */      }  while (val  >   0 );      /*  We now have the digit of the number in the buffer, but in reverse     order. Thus we reverse them now.  */       * p --   =   ' \0 ' /*  terminate string; p points to last digit  */       do      {         temp  =   * p;          * =* firstdig;          * firstdig =  temp;  /*  swap *p and *firstdig  */           -- p;          ++ firstdig;      /*  advance to next two digits  */      }  while  (firstdig  <  p);  /*  repeat until halfway  */       return  buf; }

 

该程序的测试环境:

WinXPSP2,Dev C++ 4.9.9.2

 

转载于:https://www.cnblogs.com/feima-lxl/archive/2010/08/05/1793159.html

相关资源:整形数组与字符数组相互转换

最新回复(0)