我如何让我的DFA循环播放

时间:2013-12-02 01:49:32

标签: c++

我正在创建一个程序来检查用户输入字符串是否是有效的文字。

我的问题是我如何循环思考数字(即0,...,9)。用户可以根据需要输入任意数量的数字,也可以根本不输入任何数字。

这是我到目前为止看到的案例1:

case 0: if(str[i] == '+' || '-'){ // if first char in the array = (null, +, -)
               s=1; // pass test case -> move to next test case
               i++; // move to next char in the string
        }
        else if (str[i] != '+' || '-'){goto a1;} // this case is the null test case -> moves to next test case; string still not a failure
        else // fail test case -> the string is automatically a failure
            done=true; break;

case 1: a1: if(str[i] >= '0' && str[i] <= '9'){ // if next char in the array = (null, 0, ..., 9)
     //HERE: how to make a loop check for however many numbers user has input.
               s=2;
               i++;
             }
             else if (str[i] != (str[i] >= '0' && str[i] <= '9')){goto a2;}
             else
                 done=true; break;

我正在考虑使用一个简单的for循环。

1 个答案:

答案 0 :(得分:0)

哇,goto,已经有一段时间了。

Anwyay,你可以这样做:

std::all_of(str.cbegin(), str.cend(), [](char c){return std::isdigit(c);});