簡體   English   中英

有人可以逐行解釋這段代碼嗎?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM