文字列を一つずつ処理するには?

解決


ネロ  2006-09-07 17:32:12  No: 62934  IP: 192.*.*.*

はじめまして。
C言語プログラミングを始めたばかりです。
文字列の処理について教えて下さい。

Win32APIにて
エディットから、8文字の文字列をGetDlgItemText関数で取り出した後、
8文字の文字列を1文字ずつ処理を行うプログラムに苦戦しております。
文字列は、①②−③④⑤⑥⑦の8文字であり、

・①と②はそれぞれ"1"〜"F"が入力され、16進の0x0〜0xFとして処理したい
・"−"は処理しない
・③〜⑦は10進数の0〜65535が入力され、16進の0x0000〜0xFFFFとして
  処理したい

また、+1.00〜-1.00の数字を、+100〜-100として扱い、
16進数の0x064〜0xF9Cのように「2の補数」表現に変換するには
どうすればいいのか教えて下さい。

以上、宜しくお願いします。

編集 削除
Blue  2006-09-07 18:04:12  No: 62935  IP: 192.*.*.*

入力文字は全角でしょうか?
("−"は全角ですよね?)

形式が確実に決まっているのであればsscanfを使うと便利です。

int a, b, c;

sscanf( "ff−00001", "%1x%1x−%05d", &a, &b, &c );


>16進の0x0〜0xFとして処理したい
>16進の0x0000〜0xFFFFとして
意味がわかりません。
数値に16進や10進なんてありません。それらは表記形式で、値は同じです。

int n = 15;
int m = 0xf;

はどちらも同じ値です。

編集 削除
ネロ  2006-09-07 20:28:28  No: 62936  IP: 192.*.*.*

sscanf関数を使用したら解決できました。
ありがとうございました。

編集 削除