#include <ctype.h> #include <stdio.h> #include "getop.h" /* getop()用のヘッダファイル読み込み */ #include "char_def.h" /* getop: 次の演算子あるいは数値の被演算子を取ってくる */ char *getop(char *str, char *op) { /* 次の値まで半角スペースとタブを読み飛ばす */ while ((*str == CH_BLANK) || (*str == CH_TAB)) { str++; } /* 数値でない場合 */ if (!isdigit(*str)) { *(op++) = *str; *op = CH_NULL; return ++str; } /* 整数部を求める */ while (isdigit(*str)) { *(op++) = *(str++); } /* 小数部がある場合 */ if (*str == CH_PERIOD) { /* 小数点を書き込む */ *(op++) = *(str++); /* 小数部を求める */ while (isdigit(*str)) { *(op++) = *(str++); } } /* NULLターミネート */ *op = CH_NULL; return str; }