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

解決


ネロ  2006-09-08 02:32:12  No: 62934

はじめまして。
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-08 03:04:12  No: 62935

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

形式が確実に決まっているのであれば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-08 05:28:28  No: 62936

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


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

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






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