itoa的第三个参数用于将数字转换成不同的进制。举个例子:


itoa的第三个参数用于将数字转换成不同的进制。举个例子:

#include <stdlib.h>
#include <stdio.h>

int main(void)
{
   int number = 12345;
   char string[25];

   itoa(number, string, 10);   //按十进制转换
   printf("integer = %d string = %s/n", number, string);

   itoa(number, string, 16);   //按16进制转换
   printf("integer = %d string = %s/n", number, string);
   return 0;
}

输出结果:
integer = 12345 string = 12345     --说明12345的十进制表示就是12345
integer = 12345 string = 3039      ——说明12345的十六进制表示是0x3039



但是要注意,itoa并不是一个标准的C函数,它是Windows特有的,如果要写跨平台的程序,请用sprintf。
---------------------------------------------------------------

用几进制表示吧:)
MSDN的例子

Example 

/* 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

---------------------------------------------------------------

指定要转换的进制的基数,其值好象在1--36之间都可以
---------------------------------------------------------------

我说了,这个不是C标准库中的函数,而是Windows平台下扩展的,标准库中有sprintf,功能比这个更强,用法跟printf类似:

char str[255];
sprintf(str, "%x", 100); //将100转为16进制表示的字符串。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
要编写一个将整数转换为字符串的程序,可以使用以下方法: ```c #include <stdio.h> void itoa(int num, char str[]) { int i = 0; int sign = 0; // 处理负数 if (num < 0) { sign = 1; num = -num; } // 将每一位数字转换为字符 do { str[i++] = num % 10 + '0'; num /= 10; } while (num > 0); // 添加负号 if (sign) { str[i++] = '-'; } // 反转字符串 int j; for (j = 0; j < i / 2; j++) { char temp = str[j]; str[j] = str[i - j - 1]; str[i - j - 1] = temp; } // 添加字符串结束符 str[i] = '\0'; } int main() { int num = -12345; char str[20]; itoa(num, str); printf("转换后的字符串为:%s\n", str); return 0; } ``` 在上面的代码中,我们定义了一个`itoa`函数,它接受一个整数和一个字符数组作为参数。该函数将整数转换为字符串,并将结果存储在字符数组中。 首先,我们处理负数情况,将负号标记为1,并将整数取绝对值。然后,我们使用do-while循环将每一位数字转换为字符,并将其存储在字符数组中。接下来,我们添加负号(如果有)并反转字符串。最后,我们在字符串末尾添加一个字符串结束符。 在`main`函数中,我们定义了一个整数`num`和一个字符数组`str`,并将`num`传递给`itoa`函数进行转换。最后,我们打印转换后的字符串。 请注意,上述代码假设整数转换后的字符串长度不超过20个字符。如果需要处理更长的整数,请相应地调整字符数组的大小。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值