整数を10進数列へ変換する


関数名
int2sz  整数を10進数列へ変換する
形式
void int2sz(char *str, int num);
引数
str  (出力)10進数ASCIZ文字列
num  (入力)変換したい整数
関数値
なし
注意事項

用例(int2sz-test.c
char str[15];
int2sz(str, 12345)

プログラム(int2sz.c
void int2sz(char *str, int num)
{
    int i;
    static void rint2sz();

    i = 0;
    if (num < 0) {
        num = -num;
        *str = '-';
        i++;
    }
    rint2sz(str, num, &i);
    *(str + i) = '\0';
}

static void rint2sz(char *str, int num, int *off)
{
    int k;

    if ((k = num / 10) != 0) rint2sz(str, k, off);
    *(str + *off) = num % 10 + '0';
    (*off)++;
}
説明
再帰法を使用。先行の数字については自分自身を呼出して対応し、 最終桁だけを変換して処理する。

関連関数
整数を2進数列へ変換する整数を16進数列へ変換する2進数列を整数へ変換する10進数列を整数へ変換する16進数列を整数へ変換する