Hatena::Groupcprogramming

Going My C Way このページをアンテナに追加 RSSフィード

2011年07月20日(水)

ASCII に依存しない数字 -> 数値変換

| 13:33 |  ASCII に依存しない数字 -> 数値変換 - Going My C Way を含むブックマーク はてなブックマーク -  ASCII に依存しない数字 -> 数値変換 - Going My C Way  ASCII に依存しない数字 -> 数値変換 - Going My C Way のブックマークコメント

ASCII に依存する数字 -> 数値変換

#include <ctype.h>

int to_i(int c)
{
  return isdigit(c) ? c - '0' : -1;
}

ASCII に依存しない数字 -> 数値変換

#include <string.h>

int to_i(int c)
{
    const char *nums = "0123456789";
    const char *p = strchr(nums, c);

    return p ? (int)(p - nums) : -1;
}

これで EBCDIC でもだいじょーぶ。(C言語ASCII 以外、使ったことないけど...)