Verificando se uma string C é um número inteiro
Em certas situações, como ao processar a entrada do usuário, pode ser necessário diferenciar entre strings que representam números inteiros e aqueles que não o fazem. Felizmente, existem várias maneiras de realizar essa tarefa em C.
Uma abordagem é aproveitar a função C strtol, que converte uma representação de string de um número inteiro em um valor inteiro. Para usar strtol, você pode escrever uma função simples que encapsula o processo de conversão:
inline bool isInteger(const std::string &s) {
if (s.empty() || ((!isdigit(s[0])) && (s[0] != '-') && (s[0] != ' '))) return false;
char *p;
strtol(s.c_str(), &p, 10);
return (*p == 0);
}
Esta função fornece uma maneira confiável de determinar se uma determinada string pode ser analisada como um número inteiro. Ao incorporá-lo em seu código, você pode manipular strings que representam números inteiros e não inteiros de forma adequada.
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3