在編寫mfc窗體程式時,我們經常要判斷使用者輸入的乙個字串是否合法有效,以此來增強程式的健壯性。
最近,在測試系統的對話方塊的輸入時,發現存在大量這樣的問題,甚至有一些特定**的輸入還導致系統異常退出。
為了解決這些問題,我編寫下面這個標頭檔案,來判斷輸入的字串是否為數字,以及是否在有效範圍之內。
希望以下**對你有用!
#ifndef __ct3d__checkvalidval__h__
#define __ct3d__checkvalidval__h__
class cstringex
cstringex(const cstring& s)
virtual ~cstringex()
public:
bool isfloat()
if (m_dot_count>1) // ..23.
return false;
if (length==1 && (start_pos==1 || m_dot_count==1))// . or +
return false;
if (length==2 && start_pos==1 && m_dot_count==1) // +.
return false;
return true;
} bool isinterger()
if (length==1 && start_pos==1)// +
return false;
return true;
} bool isvalidfloat(double minval, double maxval, bool ishasmin=true, bool ishasmax=true)
bool isvalidinterger(int minval, int maxval, bool ishasmin=true, bool ishasmax=true)
};// 全域性函式
class cstringvalid
static bool cstringvalid::strisinterger(const cstring& s)
static bool cstringvalid::strisfloatvalid(const cstring& s, double minval, double maxval, bool ishasmin=true, bool ishasmax=true)
static bool cstringvalid::strisintergervalid(const cstring& s, int minval, int maxval, bool ishasmin=true, bool ishasmax=true) };
#endif
PHP的eregi函式 檢查字串的有效性
int eregi string pattern,string string,array regs eregi 函式在乙個字串搜尋指定的模式的字串。搜尋不區分大小寫。eregi 可以特別有用的檢查有效性字串,如密碼。可選的輸入引數規則包含乙個陣列的所有匹配表示式,他們被正規表示式的括號分組。如果匹配...
字串問題之 括號字串的有效性和最長有效長度
給定乙個字串 str,判斷是不是整體有效的括號字串 str true str a false 高階題目 給定乙個括號字串str,返回最長的有效括號子串 首先原問題的解決思路 各種判斷 遍歷判斷每個字元是不是 或 如果不是,false 遍歷到每乙個字元時,都檢查到目前為止 和 的數量,如果 多 返回f...
括號字串的有效性和最長有效長度
給定乙個字串s,判斷是不是整體有效的括號字串。例如 遍歷字串,記錄待匹配的 的個數count,遇到 count 1,遇到 count 1,如果過程中count 0,返回false。遍歷完成,且count恰好為0,返回true def is valid s if s is none orlen s 2...