Ou dans l'autre sens, trouvez le premier caractère non numérique.
Les mêmes fonctions s'appliquent-elles aux chaînes de caractères et aux char* ?
Ou dans l'autre sens, trouvez le premier caractère non numérique.
Les mêmes fonctions s'appliquent-elles aux chaînes de caractères et aux char* ?
De la cplusplus.com vous pouvez utiliser la fonction isdigit comme suit :
// isdigit example (C++)
#include <iostream> // std::cout
#include <string> // std::string
#include <locale> // std::locale, std::isdigit
#include <sstream> // std::stringstream
int main ()
{
std::locale loc;
std::string str="1776ad";
if (isdigit(str[0],loc))
{
int year;
std::stringstream(str) >> year;
std::cout << "The year that followed " << year << " was " << (year+1) << ".\n";
}
return 0;
}
Note : il existe 2 types d'isdigit ; l'autre version est indépendante du local et basée sur l'ASCII.
S'il est impératif que vous puissiez trouver exactement où se trouve le premier chiffre qui n'est pas un caractère, vous devrez alors vérifier chaque caractère. Sinon, j'utiliserais quelque chose comme ceci :
unsigned safe_atoi(const std::string& a)
{
std::stringstream s(a);
unsigned b;
s >> b;
return b;
}
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.