utoa ()-将无符号 int 转换为字符串

标准

标准/扩展 C 或 C++ 依赖关系
z/OS® UNIX 两个 z/OS V1R5

格式

#define _OPEN_SYS_ITOA_EXT
#include <stdlib.h>

char * utoa(unsigned int n, char * buffer, int radix);

一般描述

utoa () 函数将无符号整数 n 转换为字符串。 字符串放置在传递的缓冲区中,该缓冲区必须足够大以容纳输出。 基数值可以是 OCTAL , DECIMAL 或 HEX。 当基数为 DECIMAL 时, utoa () 生成与以下语句相同的结果:
(void) sprintf(buffer, "%u", n);
将返回的字符串与缓冲区一起使用。 当基数为 OCTAL 时, utoa () 将无符号整数 n 格式化为八进制常量。 当基数为 HEX 时, utoa () 将无符号整数 n 格式化为十六进制常数。 根据需要,十六进制值将包括小写 abcdef。

返回值

将返回字符串指针 (与缓冲区相同)。 当传递无效的基数参数时,函数将返回 NULL 并将 errno 设置为 EINVAL。

可移植性注意事项

这是一个非标准函数。 尽管给定的原型通常由其他平台上的编译器使用,但并不能保证此函数在所有平台上,在所有情况下都表现得相同。 您可以使用此功能来帮助从其他平台移植应用程序,但在编写新应用程序时应避免使用此功能,以确保最大程度的可移植性。

示例

CELEBU10
/* CELEBU10

   This example reads an unsigned int and formats it to decimal,
   octal, hexadecimal constants converted to a character string.

*/

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

int main ()
{
   unsigned int i;
   char buffer [sizeof(unsigned int)*8+1];
   printf ("Enter a number: ");
   if (scanf ("%u",&i) == 1) {
      utoa (i,buffer,DECIMAL);
      printf ("decimal: %s\n",buffer);
      utoa (i,buffer,HEX);
      printf ("hexadecimal: %s\n",buffer);
      utoa (i,buffer,OCTAL);
      printf ("octal: %s\n",buffer);
   }
   return 0;
}

output

如果输入是 1234 ,那么输出应该是:
decimal: 1234
hexadecimal: 4d2
octal: 2322

相关信息