Reputation: 11787
I'm reading from a file and parsing its contents. I need to make sure a CString
value consist of only numbers. What are the different methods i could achieve it?
Sample code:
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";
}
}
Upvotes: 8
Views: 27977
Reputation: 16403
You can iterate over all characters and check with the function isdigit
whether the character is numeric.
#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");
}
Another solution that does not use isdigit
but only CString member functions uses SpanIncluding
:
Cstring Validate(CString str)
{
if(str.SpanIncluding("0123456789") == str)
return _T("string only numeric characters");
else
return _T("string contains non numeric characters");
}
Upvotes: 21
Reputation: 5264
you can use CString::Find,
int Find( TCHAR ch ) const;
int Find( LPCTSTR lpszSub ) const;
int Find( TCHAR ch, int nStart ) const;
int Find( LPCTSTR pstr, int nStart ) const;
Example
CString str("The stars are aligned");
int n = str.Find('e')
if(n==-1) //not found
else //found
See here In MSDN
Upvotes: 0