我正在读取文件并解析其内容。我需要确保CString
值仅由数字组成。我能实现的不同方法是什么?
示例代码:
Cstring Validate(CString str)
{
if(/*condition to check whether its all numeric data in the string*/)
{
return " string only numeric characters";
}
else
{
return "string contains non numeric characters";
}
}
答案 0 :(得分:16)
您可以遍历所有字符并使用函数isdigit
检查字符是否为数字。
#include <cctype>
Cstring Validate(CString str)
{
for(int i=0; i<str.GetLength(); i++) {
if(!std::isdigit(str[i]))
return _T("string contains non numeric characters");
}
return _T("string only numeric characters");
}
另一个不使用isdigit
而只使用CString成员函数的解决方案使用SpanIncluding
:
Cstring Validate(CString str)
{
if(str.SpanIncluding("0123456789") == str)
return _T("string only numeric characters");
else
return _T("string contains non numeric characters");
}
答案 1 :(得分:0)
您可以使用 CString ::查找,
int Find( TCHAR ch ) const;
int Find( LPCTSTR lpszSub ) const;
int Find( TCHAR ch, int nStart ) const;
int Find( LPCTSTR pstr, int nStart ) const;
示例强>
CString str("The stars are aligned");
int n = str.Find('e')
if(n==-1) //not found
else //found
请参阅MSDN