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」,輸入)要好;' –