好的,這裏是新手,但我需要一些關於如何開始編寫特定程序的幫助/見解。我不是要求某人爲我做這件事,我只是要求解決這個問題,因爲我實在不知道該如何開始。掃描一個有效的整數
我應該寫的程序是檢測有效整數。然而,在這個程序中,一個有效的整數定義爲如下:
- 0或更多領先的空格,然後...
- 一個可選的「+」或「 - 」後面...
- 1個或多個數字,後跟非字母數字,但不是'。'後跟1位或更多位。
有效整數示例:「1234」,「1234」,「1234.」,「+1234」,「12 + 34」,「1234」,「1234 x」和「-1234」都是整數,並且「1234e5」,「e1234」,「1234.56」和「1234abc」都不是。
到目前爲止,我所能想到的是使用一堆if語句來檢查有效整數,但我不能幫助,但我認爲必須有比使用大量if語句檢查更好更強大的方法字符串的每個字符。除了使用isdigit()和strtol()之外,我想不出任何對我有用的函數嗎?任何意見,將不勝感激。
由於這看起來像一個計算機科學的鍛鍊,有可能是邊界的運動(禁止的現成的轉換函數的用法等)。也就是說,我有兩個詞給你:正則表達式。 –
'man strtol':「字符串可以以任意數量的空格開頭(由isspace(3)確定),後跟一個可選的'+'或' - '符號。」只有非標準程序是禁止清除浮點值(前導期);但這就是它的'** endptr'。 – usr2564301
如果它真的是一個CS練習,那麼你應該使用簡單的代碼,而不是正則表達式。所以用複雜的邏輯檢查所有字符。 – abbath