isDigit() 无法将"1"识别为数值

isdigit() not recognising "1" as a numeric value

本文关键字:识别 isDigit      更新时间:2023-10-16

我正在分析一个字符串,验证字符串中的数字是否为int。

std::string segmentS
if(!isdigit(std::stoi(segmentS))){
    std::cout<<"Not a location +"<<segmentS<<std::endl;
    //does something
    break;
}

segmentS是假定为整数的子字符串即使我确保segmentS是一个数字,!isdigit(std::stoi(segmentS))仍然成立。即使segmentS是在not a location消息之后打印出来的,它也是1,这是一个数字,但当它遇到这个if语句时,它并不被视为一个数字。

std::stoi(segmentS)将把segmentS转换为int值,然后将其传递到isdigit中,但isdigit假定输入是字符

删除对stoi的调用。

isdigit将单个字符作为输入,而不是整数。