⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ltoa.c

📁 国外网站上的一些精典的C程序
💻 C
字号:
/***  LTOA.C -- routine and example program to convert a long int to**  the specified numeric base, from 2 to 36.****  Written by Thad Smith III, Boulder, CO. USA  9/06/91 **  and contributed to the Public Domain.****  Parameters: 1 - number to be converted**              2 - buffer in which to build the converted string**              3 - number base to use for conversion (2-36)****  Returns:  A character pointer to the converted string if**            successful, a NULL pointer if the number base specified**            is out of range.*/#include <stdlib.h>#include "numcnvrt.h"#if defined(__ZTC__) && !defined(__SC__)char *ltoa(      long val,                                 /* value to be converted */      char *buf,                                /* output string         */      int base)                                 /* conversion base       */{      ldiv_t r;                                 /* result of val / base  */      if (base > 36 || base < 2)          /* no conversion if wrong base */      {            *buf = '\0';            return buf;      }      if (val < 0)            *buf++ = '-';      r = ldiv (labs(val), base);      /* output digits of val/base first */      if (r.quot > 0)            buf = ltoa ( r.quot, buf, base);      /* output last digit */      *buf++ = "0123456789abcdefghijklmnopqrstuvwxyz"[(int)r.rem];      *buf   = '\0';      return buf;}#endif#ifdef TEST#include <stdio.h>main(){      char buf[100], line[100], *tail;      long v;      int inbase, outbase;      for (;;)      {            printf ("inbase, value, outbase (or hit Ctrl-C to exit)? ");            fgets (line, sizeof line, stdin);            sscanf (line, " %d%*[, ]%[^, ]%*[, ]%d", &inbase, buf, &outbase);            if (inbase == 0)                  break;                        /* exit if first number 0 */            v = strtol (buf, &tail, inbase);            printf("%s(%d) = %ld(10)\n", buf, inbase, v);            ltoa ( v, buf, outbase);            printf("ltoa(%ld, buf, %d) = %s\n\n", v, outbase, buf);            printf ("=%ld (10) = %s (%d).\n", v, buf, outbase);      };      return 0;}#endif /* TEST */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -