[英]Can someone explain this code line by line?
這種方法
bool isNumber(string input)
{
char* p;
strtod(input.c_str(), &p);
return *p == 0;
}
應該輸入一個字符串並將其轉換為雙精度值。 但我不明白它的過程。 有人可以逐行詳細地向我解釋這一點嗎? 而且,不應該將 bool 更改為 double 因為它沒有返回 true 或 false 值嗎? 謝謝。
strtod
嘗試將字符串轉換為double
。 它還將p
參數設置為指向轉換結束的位置。
如果轉換使用了字符串中的所有字符——如果它們都是數字的一部分——指針p
將指向字符串的'\\0'
終止符。
所以, return *p == 0
,或者更好的return *p == '\\0'
,告訴我們是否到達了字符串的末尾。 而且,當然, ==
返回一個bool
結果。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.