我正在解析一个字符串,验证字符串中的数字是否为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,它也是1,这是一个数字,但当它遇到这个if语句时,它不会被视为数字。
答案 0 :(得分:2)
std::stoi(segmentS)
会将segmentS
转换为int
值,然后将其传递到isdigit
,但isdigit
假定输入为字符强>
移除对stoi
的调用。
答案 1 :(得分:1)
isdigit将单个char作为输入,而不是整数。