C 如何高效地判斷乙個字串是數值?

2021-08-22 15:21:17 字數 591 閱讀 3261

在c++中如何判斷乙個字串是數值,有許多方法。

有些方法利用輸出流物件,效率很低。

也有用_ttof(str)函式,它將字串str轉換成double型別的數。如果其引數str不是乙個數,則返回0。但如果str是字串"0",也返回0。這就出現了歧義。

目前出現了乙個新的系統函式解決了這個問題。這個函式的宣告是:

int sscanf_s( const char *buffer, const char *format [, argument ] ... );
此函式的主要作用是將字串buffer按規定的格式轉換為數。但它有個重要的改進就是它的返回值,如果轉換失敗就返回0。這樣如果函式返回0,就可以確認buffer不是乙個數。

因此我們可以定義下面的函式來判斷乙個字串是否是乙個數:

bool isnumber(const char *str)

在判斷出乙個字串是數值後,再用_ttof(str)函式將字串轉換成數就比較方便了:

if (isnumber(str)) a = _ttof(str);

判斷乙個字串是數字

總共有四種方法 第一種方法 通過型別轉換實現 pubilc static integer typeconvert string str catch exception e 第二種方法通過正規表示式來實現 public static integer regexmatcher string str el...

c 判斷乙個字串是否包含另乙個字串

c 開發過程中針對字串string型別的操作是常見操作,有時候需要判斷某個字串是否包含在另乙個字串,此時可以使用indexof方法以及contain方法來實現此功能,contain方法返回true和false,而indexof方法可以返回所在的索引位置,如果為查詢到對應的字串,則返回 1。c 中字串...

判斷乙個字串是否是另乙個字串的子集

案例 c 開發 遇到模糊查詢的功能實現,不是直接查詢資料庫,而是匹配另外一些本地資料。string a asd string b asdsdad 其實a b的值都是取得動態資料。一開始自己寫了乙個函式用來判斷a是否在b中,for 迴圈即可。後來,才知道.net平台有這樣的函式,判斷字串的子集的索引號...