C有没有一种优雅的方式来检查给定的字符串是否是“双”? 如果变量的类型是double,但是如果字符串包含实数,则不适用。 例如:检查一个输入字符串是否是一个实数C
char input[50];
printf("please enter a real number: \n");
scanf("%s", input);
if (is_double(input)) {
//user entered "2"
return true;
//user entered "2.5"
return true;
//user entered "83.5321"
return true;
//user entered "w"
return false;
//user entered "hello world"
return false;
}
你可以使用['strtod'(http://en.cppreference.com/w/c/string/byte/strtof)并查看它是否可以转换完整的字符串。 –
https://stackoverflow.com/a/456314/971127 – BLUEPIXY
顺便提一句,'fgets(input,sizeof(input)-1,stdin);'比scanf(“%s”,输入)要好;' –