
No.2ベストアンサー
- 回答日時:
既に回答されている通り…です。
強いてあげればa~fはA~Fと大文字で渡される可能性も考慮した方がいい。ってところでしょうか。
実装方法は何通りかありますかねぇ。
# 文字コード利用する方法がたぶん普通でしょうが。
No.3
- 回答日時:
ASCIIコード前提でよければ、下のようなコードで足りるでしょう。
表引きにすると、もう少しスマートに作れる気がしますが。
#define is_hex(c) \
(c>='0' && c<='9') || (c>='a' && c<='f') || (c>='A' && c<='F')
#define hex2num(hex, num, min, max, up) \
if ((hex>=min) && (hex<=max)) num = num * 16 + up + hex - min
int my_atoi16(const char *str)
{
int val = 0;
int sign;
if (str)
{
sign = (*str == '-') ? -1 : 1;
int i = (*str == '-' || *str == '+') ? 1 : 0;
while (is_hex(str[i]))
{
hex2num(str[i], val, '0', '9', 0);
hex2num(str[i], val, 'a', 'f', 10);
hex2num(str[i], val, 'A', 'F', 10);
i++;
}
}
return sign * val;
}
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
C言語での引数の省略方法
-
「指定されたキャストは有効で...
-
複数桁10進数の*桁目だけを抽出...
-
#define _CRT_SECURE_NO_WARNIN...
-
野球の対戦成績のテーブル表示...
-
int型の変数値をバイト列として...
-
数値を入力して1からその数値ま...
-
acceptをalarmでタイムアウトさ...
-
このプログラミング誰か教えて...
-
毎回違う乱数を生成するにはど...
-
windows-findstrの正規表現を使...
-
未解決の外部シンボル _printf...
-
C言語で三目並べをするプログラ...
-
商と剰余を同時に求める(C言語)
-
16進数を入力とするatoi関数...
-
C言語での平滑化フィルタ
-
【C++】関数ポインタの使い方
-
比較回数と交換回数表示について
-
(int *)の意味
-
式は定数値が必要です」という...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
複数桁10進数の*桁目だけを抽出...
-
「指定されたキャストは有効で...
-
C言語での引数の省略方法
-
#define _CRT_SECURE_NO_WARNIN...
-
C言語 エラーの原因がわからな...
-
ラップ関数とはどんなものですか?
-
【C++】関数ポインタの使い方
-
if と配列の組み合わせ
-
(int *)の意味
-
ColorをRGBで指定する方法
-
未解決の外部シンボル _printf...
-
商と剰余を同時に求める(C言語)
-
構造体の勉強中です 合計点の高...
-
式は定数値が必要です」という...
-
C言語で分からないところがあり...
-
C言語での奇数の和
-
課題でつまってます・・・
-
std::set<int> で、ある値が何...
-
int16_t の _t は何?
-
比較回数と交換回数表示について
おすすめ情報