はきだめC/C++下級者の質問箱
■ このスレッドは過去ログ倉庫に格納されています
0519デフォルトの名無しさん
2006/03/18(土) 13:03:54int y=0, m=0, d=0;
(つまり、文字列を解析して、y,m,dにそれぞれ2006,3,18を代入するプログラム)
というのが与えられたとして、おまいら、どう解析する?
A.最初から1文字ずつ読んで、y,m,dに入れてく?
char* p = str;
int* tmp = &y; //現在の状態を「年」に設定
while (*p) {
if (*p>='0' && *p<='9') { *tmp = *tmp * 10 + (*p-'0'); } //数字
else if (tmp==&y) tmp = &m; //区切り文字で年→月に遷移
else if (tmp==&m) tmp = &d; //区切り文字で月→日に遷移
p++;
}
B.それとも次のように、二重ループで読んでいく?
char* p = str;
int* tmp = &y; //現在の状態を「年」に設定
while (*p) {
while (*p>='0' && *p<='9') { *tmp = *tmp * 10 + (*p-'0'); p++; } //二重ループ
if (tmp==&y) tmp = &m; //区切り文字で年→月に遷移
else if (tmp==&m) tmp = &d; //区切り文字で月→日に遷移
p++;
}
>>504のようなプログラム、おいら、Aにしようか、Bにしようか、
いつも迷ってしょうがないんだけど、どっちにすべき?
■ このスレッドは過去ログ倉庫に格納されています