Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/159.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 在短范围内验证字符串_C++_Validation - Fatal编程技术网

C++ 在短范围内验证字符串

C++ 在短范围内验证字符串,c++,validation,C++,Validation,我有一个字符串中的短整数。例如:“123456”。是否有API来检查字符串是否包含在无符号短字符范围内的有效数字 谢谢 我将使用strtol转换数字,并使用“endptr”参数检查数字字符串是否有效。然后您可以将其转换为一个短字符并检查是否相等。我将使用strtol转换数字,并使用“endptr”参数检查它是否是有效的数字字符串。然后,您可以将其转换为短字符并检查是否相等。只需使用流运算符输入数字: istringstream istr("12346"); short s; if ((istr

我有一个字符串中的短整数。例如:“123456”。是否有API来检查字符串是否包含在无符号短字符范围内的有效数字


谢谢

我将使用strtol转换数字,并使用“endptr”参数检查数字字符串是否有效。然后您可以将其转换为一个短字符并检查是否相等。

我将使用strtol转换数字,并使用“endptr”参数检查它是否是有效的数字字符串。然后,您可以将其转换为短字符并检查是否相等。

只需使用流运算符输入数字:

istringstream istr("12346");
short s;
if ((istr >> s) and istr.eof())
    cout << "valid: " << s << endl;
else
    cout << "invalid" << endl;
istringstream istr(“12346”);
短s;
如果((istr>>s)和istr.eof())

cout只需使用流运算符输入数字:

istringstream istr("12346");
short s;
if ((istr >> s) and istr.eof())
    cout << "valid: " << s << endl;
else
    cout << "invalid" << endl;
istringstream istr(“12346”);
短s;
如果((istr>>s)和istr.eof())
我喜欢:

#包括
#包括
#包括
int main(){
std::字符串s(“12346”);
试一试{
boost::词法转换;
我喜欢:

#包括
#包括
#包括
int main(){
std::字符串s(“12346”);
试一试{
boost::词法转换;

std::cout检查数字是否在某个范围内的最简单方法应该是将其转换为整数(足够大的整数类型,例如
long
)并使用比较运算符…您的意思是除
errno=0;strtoul(str,0,10)之外的其他检查一个数字是否在一个范围内的最简单的方法应该是把它转换成整数(一个足够大的整数类型,例如“代码>长< /代码>”)和使用比较运算符……你的意思是除了<代码> ErnO=0;Stroul(STR,0, 10)-1这将不总是工作。考虑你的字符串是否是“1542 2451”。你的程序将打印。“有效期:1542".@Mihran-这是怎么断开的?1542是一个有效的短AFAIK。OP没有提到字符串中有多个数字-因此,这个解决方案很好…我认为OP想检查:1.如果字符串包含整数2。如果它在短范围内。但是这个答案不符合第一个条件。@Mihran:好的,只需检查
eof即可随后。查看修改后的答案。- 1,这将不总是工作。考虑如果您的字符串是“1542 2451”。您的程序将打印“有效:1542”。.@Mihran-这是怎么断开的?1542是一个有效的短AFAIK。OP没有提到字符串中有多个数字-因此,这个解决方案很好…我认为OP想检查:1.如果字符串包含整数2。如果它在短范围内。但是这个答案不符合第一个条件。@Mihran:好的,只需检查
eof即可之后。参见修改后的答案。