2017-01-27 3 views
-8

Так что мой вопрос в том, есть ли у меня массив символов, мне разрешено вводить в него символы. Если я введу целое число с символом, давайте предположим «abc123», тогда это не должно быть разрешено. Как это сделать?Поймать исключение, когда пользователь вводит целочисленное значение в массив символов

+2

перебрать строки и использовать 'зЬй :: isdigit' из' ' для проверки цифр? –

+0

@GregKikola стоит написать, что один в качестве ответа. – user4581301

+0

Что вы пробовали до сих пор, вам нужно его обновить. По этой ссылке http://stackoverflow.com/help/how-to-ask – Prasad

ответ

0

Использование std::none_of, наряду с isdigit:

#include <algorithm> 
#include <cctype> 
#include <string> 
#include <iostream> 

int main() 
{ 
    std::string test = "abc123"; 
    if (std::none_of(test.begin(), test.end(), ::isdigit)) 
     std::cout << "All good\n"; 
    else 
     std::cout << "You've entered an integer\n"; 

    // Try with good data 
    test = "abcdef"; 
    if (std::none_of(test.begin(), test.end(), ::isdigit)) 
     std::cout << "All good\n"; 
    else 
     std::cout << "You've entered an integer\n";  
} 

Live Example

Смежные вопросы