我正在创建一个程序来检查用户输入字符串是否是有效的文字。
我的问题是我如何循环思考数字(即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循环。
答案 0 :(得分:0)
哇,goto
,已经有一段时间了。
Anwyay,你可以这样做:
std::all_of(str.cbegin(), str.cend(), [](char c){return std::isdigit(c);});