最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
asp.net C++ 否为数字及有效性检查
时间:2011-01-15 编辑:简简单单 来源:一聚教程网
#ifndef __ct3d__checkvalidval__h__
#define __ct3d__checkvalidval__h__class cstringex
{
private:
cstring m_str;
int m_dot_count;
public:
cstringex()
{
m_dot_count = 0;
}
cstringex(const cstring& s)
{
m_str = s;
}
virtual ~cstringex()
{
}public:
bool isfloat()
{
if (m_str.isempty())
return false;m_dot_count = 0;
int start_pos = 0;
char c = m_str.getat(0);
if (c=='+' || c=='-')
start_pos = 1;int length = m_str.getlength();
for (int i=start_pos; i{
c = m_str.getat(i);
if (c=='.')
{
m_dot_count++;
continue;
}if (c<0x30 || c>0x39)
return false;
}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 (m_str.isempty())
return false;int start_pos = 0;
char c = m_str.getat(0);
if (c=='+' || c=='-')
start_pos = 1;int length = m_str.getlength();
for (int i=start_pos; i{
c = m_str.getat(i);
if (c<0x30 || c>0x39)
return false;
}if (length==1 && start_pos==1)// +
return false;return true;
}bool isvalidfloat(double minval, double maxval, bool ishasmin=true, bool ishasmax=true)
{
if (maxval{
double a = minval;
minval = maxval;
maxval = a;
}if (!isfloat())
return false;double d = atof(lpctstr(m_str));
if (ishasmin && dreturn false;
if (ishasmax && d>maxval)
return false;return true;
}bool isvalidinterger(int minval, int maxval, bool ishasmin=true, bool ishasmax=true)
{
if (maxval{
int a = minval;
minval = maxval;
maxval = a;
}if (!isinterger())
return false;int d = atoi(lpctstr(m_str));
if (ishasmin && dreturn false;
if (ishasmax && d>maxval)
return false;return true;
}
};// 全局函数
class cstringvalid
{
public:
// 字符串有效判断
static bool cstringvalid::strisfloat(const cstring& s)
{
cstringex sx = s;
return sx.isfloat();
}static bool cstringvalid::strisnum(const cstring& s)
{
cstringex sx = s;
return sx.isinterger();
}static bool cstringvalid::strisfloatvalid(const cstring& s, double minval, double maxval, bool ishasmin=true, bool ishasmax=true)
{
cstringex sx = s;
return sx.isvalidfloat(minval, maxval, ishasmin, ishasmax);
}static bool cstringvalid::strisintergervalid(const cstring& s, int minval, int maxval, bool ishasmin=true, bool ishasmax=true)
{
cstringex sx = s;
return sx.isvalidinterger(minval, maxval, ishasmin, ishasmax);
}
};
#endif
-
上一个: 删除数组重复元素(js,java,c#)
-
下一个: qsort() 之 __cdecl
相关文章
- C#复制数组的两种方式及效率比较解读 10-24
- ASP.NET Identity用法解析 10-24
- ASP.NET MVC使用Identity增删改查用户介绍 10-24
- C语言中atoi函数模拟实现介绍 10-18
- .Net反向代理组件Yarp用法介绍 10-10
- .NET使用YARP通过编码方式配置域名转发实现反向代理教程 10-10