char型に格納されている16進数文字列をintに変換するには?

解決


くりきんとん  2010-02-01 19:11:29  No: 71340

いつもはVBばかり使用しているVC++初心者です。
例えば、以下のようなsというchar型の変数があったとします。
char s[255] = "4A6B";
この値を、int型(0x4A6B)に変換したいのですが、
そのような関数はございますでしょうか?
使用しているバージョンは2008です。
よろしくお願いします。


Blue  2010-02-01 19:24:01  No: 71341

strtolを使うとか。

#include <stdlib.h>
#include <stdio.h>

int main(void)
{
  char s[255] = "4A6B";
  int n;

  n = (int)strtol(s, NULL, 16);
  printf("0x%4X\n", n);

  return 0;
}


くりきんとん  2010-02-01 20:18:47  No: 71342

Blue様、早速のご回答誠にありがとうございます。
strtolでうまくいきました。ありがとうございました。


くりきんとん  2010-02-01 20:18:47  No: 71343

Blue様、早速のご回答誠にありがとうございます。
strtolでうまくいきました。ありがとうございました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加