はじめまして。
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の補数」表現に変換するには
どうすればいいのか教えて下さい。
以上、宜しくお願いします。
入力文字は全角でしょうか?
("−"は全角ですよね?)
形式が確実に決まっているのであれば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;
はどちらも同じ値です。
sscanf関数を使用したら解決できました。
ありがとうございました。
ツイート | ![]() |