
No.1ベストアンサー
- 回答日時:
数字に変換するための文字列を格納できるバッファを準備して
そこに元文字列の指定位置から切り出して数値に変換します
今回の場合なら 受け取る文字列のバッファは2文字とC/C++の文字列の終端をあらわすNULL文字との3文字分が最低でも入ります
int test( LPCTSTR s )
{
TCHAR buf[3];
TCHAR *p = s;
int a,b,c,d;
// 受け取り側を初期化
buf[0] = buf[1] = buf[2] = _T('\0');
// 12 をコピー
_tcsncpy( buf, p, 2 );
a = atoi( buf );
// 受け取り側を初期化
buf[0] = buf[1] = buf[2] = _T('\0');
// 34 をコピー
p += 2;
_tcsncpy( buf, p, 2 );
b = atoi( buf );
// 受け取り側を初期化
buf[0] = buf[1] = buf[2] = _T('\0');
// 5 をコピー
p += 2;
_tcsncpy( buf, p, 1 );
c = atoi( buf );
d = a + b - c;
return d;
}
といった具合です
または sscanfを使ってもいいのであれば
int test(LPCTSTR s )
{
int a, b, c, d;
// 文字列が不正だった場合の特殊な値
d = -9999;
if ( 3 == _stscanf( s, _T("%2d%2d%d"), &a, &b, &c ) ) {
d = a + b - c;
}
return d;
}
といった具合です
No.3
- 回答日時:
横から失礼
> a = atoi( buf );
a = _ttoi( buf );
TCHAR型なので、atoi()ではなく、_ttoi()だと思う。
No.2
- 回答日時:
10進数5桁であるなら……。
int test (LPCTSTR s)
{
int val, a, b, c, d;
val = (int)_tcstol(s, 0, 10); /* 数字を数値に変換 */
a = (val / 1000) % 100;
b = (val / 10) % 100;
c = val % 10;
d = a + b - c;
return d;
}
というのもありですね。
# エラー処理は端折っています。
参考URL:http://msdn.microsoft.com/ja-jp/library/w4z2wdyc …
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
fgetsなどのときのstdinのバッ...
-
テキストデータをそのままバイ...
-
C言語のfor文です。 繰り返しの...
-
文字列から空白を取り除きたい...
-
CStringをwchar_tに変換したい
-
配列をnビットシフトする
-
double型の値をchar配列に変換...
-
str系関数を使わずに二つの文字...
-
charからLPTSTRへの変換方法
-
2曲同時再生するにはどうした...
-
charでの計算?
-
間接操作のレベルとは
-
const char** p;のとき、free(p...
-
文字列配列のほしい部分だけを...
-
c言語でユーザ関数を利用して入...
-
c言語プログラミング実行時エラ...
-
atoi( ) の反対をやりたい
-
引数の渡し方と受け方(argv)
-
C言語プログラミングについて(...
-
MFCでのBITMAP作成について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
構造体の各メンバにfor文からア...
-
fgetsなどのときのstdinのバッ...
-
文字列から空白を取り除きたい...
-
C言語のfor文です。 繰り返しの...
-
CStringをwchar_tに変換したい
-
間接参照のレベルが異なっています
-
c++ 文字列を入力して、一文字...
-
C言語の入力した文字を反転させ...
-
charからLPTSTRへの変換方法
-
ネットワークにつながっている...
-
'const char *' 型は 'char *' ...
-
テキストデータをそのままバイ...
-
c言語でユーザ関数を利用して入...
-
atoi( ) の反対をやりたい
-
間接操作のレベルとは
-
-'0'の意味について
-
double型の値をchar配列に変換...
-
Linuxでフォルダ内全ファイル名...
-
配列をnビットシフトする
-
型変換
おすすめ情報