Maison > développement back-end > C++ > Comment déterminer si une chaîne C représente un entier ?

Comment déterminer si une chaîne C représente un entier ?

DDD
Libérer: 2024-11-07 04:17:02
original
390 Les gens l'ont consulté

How to Determine if a C   String Represents an Integer?

Déterminer si une chaîne C représente un entier

Problème :

Lorsque vous travaillez avec une entrée utilisateur, vous pouvez rencontrer des chaînes qui contiennent un mélange de mots et de chiffres. Si vous souhaitez isoler uniquement les mots, vous avez besoin d'une méthode pour les distinguer des nombres.

Solution :

Une approche pour vérifier si une chaîne représente un entier est pour utiliser la fonction strtol(). Pour simplifier son utilisation, vous pouvez l'incorporer dans une fonction personnalisée :

<code class="cpp">inline bool isInteger(const std::string & s)
{
   if(s.empty() || ((!isdigit(s[0])) &amp;&amp; (s[0] != '-') &amp;&amp; (s[0] != '+'))) return false;

   char * p;
   strtol(s.c_str(), &amp;p, 10);

   return (*p == 0);
}</code>
Copier après la connexion

Explication :

strtol() analyse une chaîne comme une valeur numérique, en s'arrêtant à le premier caractère non numérique. En fournissant un pointeur vers une variable de caractère (p), il indique la position du premier caractère invalide. Si p pointe vers la fin de la chaîne, tous les caractères ont été convertis avec succès, indiquant que la chaîne est un entier.

Utilisation :

Dans votre fonction principale, vous peut intégrer cette fonction comme suit :

<code class="cpp">int main () {
  stringstream ss (stringstream::in | stringstream::out);
  string word;
  string str;
  getline(cin,str);
  ss<<str;
  while(ss>>word)
    {
      if(isInteger(word))
        continue;
      cout<<word<<endl;
    }
}</code>
Copier après la connexion

Cela produira des mots qui ne sont pas des entiers tout en ignorant les entrées numériques.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal