Skip to content
On this page
c
/*
 * @Author: 无涯 (mxl233@qq.com)
 * @Date: 2023-07-02 13:59:50
 * @LastEditors: 开心好梦🥳
 * @LastEditTime: 2023-07-02 14:19:10
 * @FilePath: itoa.c
 */
#include <stdio.h>
#include <stdlib.h>
#include <limits.h>

void itoa(int n, char s[]);
void reverse(char s[]);

int main(){
    char s[20];
    printf("%d \n", INT_MIN);
    itoa(INT_MIN, s);
    printf("%s\n", s);
    return 0;
}

/* itoa: convert number n to string s*/
void itoa(int n, char s[]){
    int i, sign;
    i = 0;
    sign = n;
    do
    {
        s[i++] = abs(n % 10) + '0';
    } while (n /= 10);
    if(sign < 0)
        s[i++] = '-';
    reverse(s);
}

void reverse(char s[]){
    int i, j, temp;

    for(i = 0, j = strlen(s) - 1; i < j; ++i,--j){
        temp = s[i];
        s[i] = s[j];
        s[j] = temp;
    }
}