自己实现一个 itoa 函数
时间: 2024-10-25 15:09:23 浏览: 18
深入C++实现函数itoa()的分析
itoa函数是将整数转换成对应的字符数组(通常是字符串),它是一个常见的编程技巧,尤其在处理底层数据结构时很有用。在C语言中,由于没有内置的这种函数,你可以手动编写一个递归版本的itoa函数。下面是一个简单的示例:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
// 将十进制整数转换为字符串
char* itoa(int num, char* str, int radix) {
if (num == 0) {
*str = '0';
return str + 1;
}
char rem;
int div = 0;
while (num != 0) {
rem = num % radix;
num /= radix;
// 对小写字母做调整,如从10进制到2进制,需要减去'0'
if (radix == 2 && rem > 9) rem -= 10 - radix;
str[div] = rem + '0'; // 使用ASCII码值加'0'转为字符
str++;
div++;
}
// 如果数字是负数,在前面添加负号
if (num < 0) {
*str++ = '-';
}
str[div] = '\0'; // 添加字符串结束符
return str;
}
int main() {
int num = -42;
char buffer[64];
itoa(num, buffer, 10); // 十进制
printf("Integer as string: %s\n", buffer);
return 0;
}
```
这个`itoa`函数会返回一个新的字符串,其中包含输入数字的表示。注意,这不是标准库的一部分,因为C标准库提供的printf或其他类似函数已经包含了这种功能。
阅读全文