如何判断一个CString中存放的字符串是不是数字?

rolt1 2000-08-25 02:16:00
如何判断一个CString中存放的字符串是不是数字?

就象VB里的IsNumeric(str)一样。
...全文
446 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
rolt1 2000-08-28
  • 打赏
  • 举报
回复
对不起!我是问:如何判断这个CString里存放的整个字符串是否十进制数?如"5345"是,“34h6”不是。
boodweb 2000-08-28
  • 打赏
  • 举报
回复
楼上的兄弟是不是写错了,好象是这样的才队:
BOOL IsNum(CString &str)
{
int n=str.GetLength();
for(int i=0;i<n;i++) if (str[i]<'0')¦¦str[i]>'9')) return FALSE;
return TRUE;
}

Sunlet 2000-08-28
  • 打赏
  • 举报
回复
BOOL IsNum(CString &str)
{
int n=str.GetLength();
for(int i:=0;i<n;i++) if ((LPCSTR(str)<'0')||LPCSTR(str)>'9')) return FALSE;
return TRUE;
}
Areslee 2000-08-28
  • 打赏
  • 举报
回复
用Kevin_qing的第一个回复。
huntout 2000-08-25
  • 打赏
  • 举报
回复
1、用 atoi 函數,若不是數字,返回的是0,不過字符串為"0","00"...的情況處理不了
2、用CString::FindOneOf("0123456789")
playpcgame 2000-08-25
  • 打赏
  • 举报
回复
自己写一个函数不就可以了吗?
Kevin_qing 2000-08-25
  • 打赏
  • 举报
回复
另外,对16进制的数要用
CString s;
...
if(sscanf((LPCTSTR)s,"%X")!=1){
// 不是数字;
}
else{
//是
}
Kevin_qing 2000-08-25
  • 打赏
  • 举报
回复
CString s;
...
if(sscanf((LPCTSTR)s,"%f")!=1){
// 不是数字;
}
else{
//是
]

16,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧