char* my_itoa(int num, char* buff, int radix) {
if (buff == NULL)return NULL;
char dig[] = { '0','1','2','3','4','5','6','7','8','9', 'A', 'B', 'C', 'D', 'E', 'F' };
// 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
char* Stack = (char*)malloc(sizeof(char) * 40);
int j = 0;
while (num != 0) {
Stack[j] = dig[num % radix];
num /= radix;
j++;
}
int i = 0;
char ch;
while (j>=1) {
--j;//2 1 0
buff[i++] = Stack[j];
}
return buff;
}
主函数
int main() {
char str[40]={0};
my_itoa(25, str, 8);
for (int i = 0; str[i] != '\0'; i++) {
cout << str[i];
}
cout << endl;
}