プログラムの目標は、一連の括弧内にある場合にのみ、文字列 (char) 内の整数を抽出できるようにすることです。文字列がこれらの要件を満たしていない場合は、エラー メッセージを出力することも想定しています。
例:char str = "( 1 2 3)";
これは、整数 1、2、および 3 を検出したことを出力します。ただし、char str = " 1 2 3( 4 5 6);
書式設定が不適切なため、str がエラー関数の呼び出しを返すとしましょう。文字列に数字や空白以外のものが含まれている場合は、エラーも出力する必要があります。最後に、終わりの括弧が見つかるまで、括弧の中を調べることを想定しています。
現時点では、任意の文字列を検索して整数を抽出できますが、数字以外に何かがあるかどうかを判断し、括弧内のみをチェックする方法がわかりません。
void scanlist(char *str)
{
char *p = str;
while (*p) {
if ((*p == '-' && isdigit(p[1])) || (isdigit(*p))) {
int val = strtol(p, &p, 10);
on_int(val);
}
else {
p++;
}
}
while の後に別の if ステートメントを入れてみましたが、それが '(' で始まるかどうかを確認しましたが、何もしません。どうぞ、ありがとう!