c itoa自己实现
时间: 2024-04-16 15:28:14 浏览: 89
你可以使用以下代码来自己实现 `itoa` 函数:
```c
void reverse(char* str, int length) {
int start = 0;
int end = length - 1;
while (start < end) {
char temp = str[start];
str[start] = str[end];
str[end] = temp;
start++;
end--;
}
}
char* itoa(int num, char* str, int base) {
int i = 0;
bool isNegative = false;
// 处理负数的情况
if (num < 0 && base == 10) {
isNegative = true;
num = -num;
}
// 将每一位数字转换为字符
while (num != 0) {
int rem = num % base;
str[i++] = (rem > 9) ? (rem - 10) + 'a' : rem + '0';
num = num / base;
}
// 如果是负数,在字符串前面加上负号
if (isNegative) {
str[i++] = '-';
}
// 添加字符串结束符
str[i] = '\0';
// 反转字符串
reverse(str, i);
return str;
}
```
这是一个简单的实现,可以将整数转换为字符串。它接受三个参数:要转换的整数 `num`,存储结果的字符数组 `str`,以及进制 `base`。请注意,这个函数只支持十进制和十六进制的转换。
阅读全文