Как проверить, содержит ли CString только числовые символы
Я читаю из файла и анализа его содержания. Мне нужно убедиться, что 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";
}
}
2 ответов
вы можете перебирать все символы и проверять с помощью функции 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");
}
можно использовать 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;
пример
CString str("The stars are aligned");
int n = str.Find('e')
if(n==-1) //not found
else //found
посмотреть здесь MSDN