简单问题,在线等,马上解决马上给分
怎么判断CString str里面的是否有除了数字之外的字符
CString str="";
GetDlgItem(IDC_EDIT_MARK1)->GetWindowText(strMark1);
若有,则提示MessageBox("");
用str.GetAt(nItem);还是其他的,请给出实现代码,谢谢
问题点数:10、回复次数:6Top
1 楼vcmute(BCare4 H1Rest Good9!)回复于 2005-05-04 16:43:06 得分 5
简单判断if(str!=str.SpanIncluding("-1234567890."))
严格就要判断-和.的位置,以及开头不能连续0等Top
2 楼vcmute(BCare4 H1Rest Good9!)回复于 2005-05-04 16:47:36 得分 0
如果是整数,可用
CString strTemp;
strTemp.Format("%d",atoi(str));
if(str!=strTemp)
如果是浮点数,不建议用
strTemp.Format("%f",atof(str));
Top
3 楼fanqing(火影忍者+28%(准备学习进程/线程))回复于 2005-05-04 16:49:25 得分 5
void CSsssDlg::OnButton1()
{
CString ss;
edit.GetWindowText(ss);
for(int n=0;n<ss.GetLength();n++)
{
switch(ss.GetAt(n))
{
case '1':
break;
case '2':
break;
case '3':
break;
case '4':
break;
case '5':
break;
case '6':
break;
case '7':
break;
case '8':
break;
case '9':
break;
case '0':
break;
default:
CString m;
m.Format("%d",n);
m+="位不是数字";
MessageBox(m,0,MB_OK);
};
}
}Top
4 楼uovk(石头)回复于 2005-05-04 17:34:11 得分 0
楼上的够详细,不过既然0-9都不用判断就什么也不用写了
case 0:
case 1:
...
case 9:
break;
default:
.......Top
5 楼ERic_ysl(年轻是用来透支的!)回复于 2005-05-04 17:43:27 得分 0
while(n<strMark1.GetLength()){
if(strMark1.GetAt(n)<'0' || strMark1.GetAt(n)>'9'){
MessageBox("");
return;
}
}
解决了,刚才也是这么写的,不过犯了点错误,一时没看出来
谢谢Top
6 楼ERic_ysl(年轻是用来透支的!)回复于 2005-05-04 17:48:14 得分 0
结Top




