当前位置:首页
开发技术指南» 文章正文
    引言:

    摘要: 一个人事表: p_id,p_name,p_bir(生日) 现在要统计: 年龄35以下的,36-45的,46-55的,56以上的,为空的 人数 怎样写这样一个sql: **用这个可以计算出当前的年龄floor(months_between(sysdate,p_bir)/12) 问题是:**然后再用decode 可以20,21的都转为35,但我不想将所有的年龄都写一遍,这样太麻烦,有别的方法吗......
    摘要: 我要用delphi创建一个作业用来定时备份数据库,sql语句写好了,但是delphi每次执行都会提示“至少一个参数没有被指定值”和“不正常的定义参数对象,提供了不一致或不完整的信息”,但是我把每一次要执行的sql语句拷贝到查询分析器里执行都没有任何问题,不知道什么缘故,请大家不吝赐教。 ......


C语言中如何将整型转化为字符串

谢谢指点  
 

NO.1   作者: megaboy

函数就用itoa(iNumber),也可以sprintf(str,   "%d",   iNumber);  
   
 

NO.2   作者: K

char   *     itoa   (   int   value,   char   *   buffer,   int   radix   );    
  Convert   integer   to   string.  
      Converts   an   integer   value   to   a   null-terminated   string   using   the   specified   radix   and   stores   the   result   in   the   given   buffer.  
      If   radix   is   10   and   value   is   negative   the   string   is   preceded   by   the   minus   sign   (-).   With   any   other   radix,   value   is   always   considered   unsigned.  
      buffer   should   be   large   enough   to   contain   any   possible   value:   (sizeof(int)*8+1)   for   radix=2,   i.e.   17   bytes   in   16-bits   platforms   and   33   in   32-bits   platforms.    
   
  Parameters.    
   
  value    
  Value   to   be   represented   as   a   string.    
  buffer    
  Buffer   where   to   store   the   resulting   string.    
  radix    
  Numeral   radix   in   which   value   has   to   be   represented,   between   2   and   36.    
  Return   Value.  
      A   pointer   to   the   string.    
   
  Portability.  
      Not   defined   in   ANSI-C.   Supported   by   some   compilers.  
   
   
  Example.  
   
   
  /*   itoa   example   */  
  #include   <stdio.h>  
  #include   <stdlib.h>  
   
  int   main   ()  
  {  
      int   i;  
      char   buffer   [33];  
      printf   ("Enter   a   number:   ");  
      scanf   ("%d",&i);  
      itoa   (i,buffer,10);  
      printf   ("decimal:   %s\n",buffer);  
      itoa   (i,buffer,16);  
      printf   ("hexadecimal:   %s\n",buffer);  
      itoa   (i,buffer,2);  
      printf   ("binary:   %s\n",buffer);  
      return   0;  
  }  
   
  Output:  
  Enter   a   number:   1750  
  decimal:   1750  
  hexadecimal:   6d6  
  binary:   11011010110  
 

NO.3   作者: heskyII

函数原型:char   *_itoa(   int   value,   char   *string,   int   radix   );  
  需要的头文件:stdlib.h  
  MSDN上的用法:/*   ITOA.C:   This   program   converts   integers   of   various  
    *   sizes   to   strings   in   various   radixes.  
    */  
   
  #include   <stdlib.h>  
  #include   <stdio.h>  
   
  void   main(   void   )  
  {  
        char   buffer[20];  
        int     i   =   3445;  
        long   l   =   -344115L;  
        unsigned   long   ul   =   1234567890UL;  
   
        _itoa(   i,   buffer,   10   );  
        printf(   "String   of   integer   %d   (radix   10):   %s\n",   i,   buffer   );  
        _itoa(   i,   buffer,   16   );  
        printf(   "String   of   integer   %d   (radix   16):   0x%s\n",   i,   buffer   );  
        _itoa(   i,   buffer,   2     );  
        printf(   "String   of   integer   %d   (radix   2):   %s\n",   i,   buffer   );  
   
        _ltoa(   l,   buffer,   16   );  
        printf(   "String   of   long   int   %ld   (radix   16):   0x%s\n",   l,    
                                                                                                          buffer   );  
   
        _ultoa(   ul,   buffer,   16   );  
        printf(   "String   of   unsigned   long   %lu   (radix   16):   0x%s\n",   ul,  
                                                                                                          buffer   );  
  }  
   
   
  Output  
   
  String   of   integer   3445   (radix   10):   3445  
  String   of   integer   3445   (radix   16):   0xd75  
  String   of   integer   3445   (radix   2):   110101110101  
  String   of   long   int   -344115   (radix   16):   0xfffabfcd  
  String   of   unsigned   long   1234567890   (radix   16):   0x499602d2  
   
 

NO.4   作者: snowbirdfly

atoi将字符串转换成整型数;  
  atol将字符串转换成长整型数;  
  strtol将字符串转换成长整型数  
  strtoul将字符串转换成无符号长整型数

NO.5   作者: ywchen2000

回复人:llf_hust()   (   )   信誉:100  
  2005-08-10   12:12:00  
  #include   "stdio.h"  
  void   convert(n)  
  int   n;  
  {int   i;  
    if   ((i=n/10)!=0)  
    convert(i);  
    putchar(n%10+0);  
    }//这段代码看不懂,请帮忙解释一下  
    main()  
  {   int   number;  
    printf("\n输入整数:");  
    scanf("%d",&number);  
    printf("\n输出是:   ");  
    if(number<0)  
    {   putchar(-);  
    number=-number;  
    }  
    convert(number);  
    }  
   
  //用这个方法也可以

NO.6   作者: fankoo

#include   "stdio.h"  
  void   convert(n)  
  int   n;  
  {int   i;  
    if   ((i=n/10)!=0)  
          convert(i);  
          putchar(n%10+0);   //通过ASCII值来转换,把输入的整型值分离成为单个的数字,如  
                                                //整型数34,需要分离为3、4这两个数。方法为:0ASCII为48  
                                                //int   a=34;int   b;int   c;  
                                                //b=a/10;c=a%10;  
                                                //这样b为3,c为4,然后b+48,c+48就是其对应的ASCII码值,也就是字符值。  
   
    }//这段代码看不懂,请帮忙解释一下  
    main()  
  {   int   number;  
      printf("\n输入整数:");  
      scanf("%d",&number);  
      printf("\n输出是:   ");  
      if(number<0)  
      {     putchar(-);  
            number=-number;  
      }  
      convert(number);  
      }  
 

NO.7   作者: acolu

void   convert(n)  
  int   n;  
  {int   i;  
    if   ((i=n/10)!=0)  
          convert(i);  
          putchar(n%10+0);   //这段用的是递归法的函数->整数的每一位都要转换成ASCII码,假设实参是3位整数3561,如果要把356转换成ASCII码必须先把35转换成ASCII码,转换35之前必须先把3转换成ASCII码;函数的调用情况是:conver(356)->conver(35)->conver(3)->conver(35)->conver(356);  
   
  void   convert(3)  
  int   n;  
  {int   i;  
    if   ((i=3/10)!=0)//实参为3时条件为假  
          convert(i);  
          putchar(n%10+0)//结果为‘3’  
   
  void   convert(35)  
  int   n;  
  {int   i;  
    if   ((i=35/10)!=0)//实参为35时i=3条件为真  
          convert(3);   //结果为:‘3”  
          putchar(n%10+0)//结果为‘5’  
  //convert(35)函数的结果为‘3’  
   
  void   convert(356)  
  int   n;  
  {int   i;  
    if   ((i=356/10)!=0)//实参为356时i=35条件为真  
          convert(35);   //结果为:‘35’  
          putchar(n%10+0)//结果为‘6’  
  //convert(356)函数的结果为‘356’  
   
   
 

NO.8   作者: mozart007

如果是支持c++的编译器,可以这样用  
  char   chartemp[50];  
  int   i;    
   
  strcpy(chartemp,IntToStr(i).c_str());  
   
  这样i,就转成字符串chartemp了  
 

NO.9   作者: zixiu2008

itoa不是标准的  
   
  可以使用sprintf

NO.10   作者: liuhaimiao

char   *   itoa(int   n)  
  {  
  char   *r;  
  int   l,   t;  
   
      t   =   n;  
           
  if   (t<0)  
      {  
          t   =   -t;  
      }  
       
  for   (l=2;   t>0;   l++)  
      {  
          t   /=   10;  
      }  
       
  r   =   malloc(l);  
       
  if   (r)  
      {  
          sprintf(r,"%d",n);  
      }  
       
  return   r;  
  }


 ·救命啊,如何安装ant    »显示摘要«
    摘要: 救命啊,如何安装ant???????????? ......
» 本期热门文章:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE