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