Maison  >  Article  >  développement back-end  >  Programme C++ pour vérifier si une chaîne est un nombre

Programme C++ pour vérifier si une chaîne est un nombre

WBOY
WBOYavant
2023-08-27 12:53:122521parcourir

Programme C++ pour vérifier si une chaîne est un nombre

L'utilisation de chaînes ou de caractères est très utile pour résoudre des difficultés de programmation logique. Les caractères d'une chaîne sont des types de données de 1 octet qui peuvent stocker des symboles dans des valeurs ASCII. Une chaîne est une collection de caractères. Ces symboles peuvent être des caractères spéciaux, des chiffres du système numérique ou des lettres de l'alphabet anglais. Cet article vous apprendra comment utiliser C++ pour déterminer si un caractère est un caractère numérique.

Vérifiez si une chaîne est un nombre

Pour vérifier si une chaîne donnée est un nombre, nous devons vérifier si chaque caractère qu'elle contient est un nombre. Si l'un des caractères est un caractère non numérique, la chaîne est non numérique, sinon elle est numérique. L'algorithme est le suivant -

Algorithme

  • Lire la chaîne s en entrée
  • Pour chaque caractère c dans la chaîne s, procédez comme suit
    • Si c n'est pas un nombre, alors
      • erreur de retour
    • Fin si
  • Fin
  • retour vrai

Exemple

#include <iostream>
#include <ctype.h>

using namespace std;
string solve( string s ) {
   for( int i = 0; i < s.length(); i++ ) {
      if( !isdigit( s[i] )) {
         return "False";
      }
   }
   return "True";
}

int main()
{
   cout << "Is "589" a numeric string? : " << solve( "589" ) << endl;
   cout << "Is "69a" a numeric string? : " << solve( "69a" ) << endl;
   cout << "Is "2979624" a numeric string? : " << solve( "2979624" ) << endl;
   cout << "Is "25\%4A" a numeric string? : " << solve( "25\%4A" ) << endl;
   cout << "Is "889" a numeric string? : " << solve( "889" ) << endl;
}

Sortie

Is "589" a numeric string? : True
Is "69a" a numeric string? : False
Is "2979624" a numeric string? : True
Is "25%4A" a numeric string? : False
Is "889" a numeric string? : True

Cette solution vérifie si la chaîne donnée est un nombre mais ne renvoie pas vrai lorsque l'entrée est négative. Pour les nombres négatifs, des contrôles spéciaux sont nécessaires.

Vérifiez si une chaîne est négative ou positive

Pour vérifier si la chaîne donnée est un nombre, il suffit de vérifier si chaque caractère est un nombre. Mais pour les nombres négatifs, le premier caractère doit être un signe « - ». Vérifiez donc d’abord si le premier caractère est négatif, puis vérifiez si le caractère suivant est un nombre, et si c’est le cas, vérifiez si les caractères restants sont des nombres. L'algorithme est le suivant -

Algorithme

  • Lire la chaîne s en entrée
  • Si le premier caractère de s est « - » et que le caractère suivant est un nombre, alors
    • st = 1
  • Sinon
    • st=0
  • Si ça se termine
  • Pour chaque caractère c dans la chaîne s commençant à l'index st, procédez comme suit
    • Si c n'est pas un nombre, alors
      • erreur de retour
    • Si ça se termine
  • Fin
  • retour vrai

Exemple

#include <iostream>
#include <ctype.h>

using namespace std;
string solve( string s ) {
   int start;
   if( s[0] == '-' && isdigit( s[1] ) ) {
      start = 1;
   }
   else {
      start = 0;
   }

   for( int i = start; i < s.length(); i++ ) {
      if( !isdigit( s[i] )) {
         return "False";
      }
   }
   return "True";
}

int main()
{
   cout << "Is "687" a numeric string? : " << solve( "687" ) << endl;
   cout << "Is "256l" a numeric string? : " << solve( "256l" ) << endl;
   cout << "Is "-5845" a numeric string? : " << solve( "-5845" ) << endl;
   cout << "Is "-89A2" a numeric string? : " << solve( "-89A2" ) << endl;
   cout << "Is "-256" a numeric string? : " << solve( "-256" ) << endl;
}

Sortie

Is "687" a numeric string? : True
Is "256l" a numeric string? : False
Is "-5845" a numeric string? : True
Is "-89A2" a numeric string? : False
Is "-256" a numeric string? : True

Conclusion

Pour vérifier si la chaîne donnée est un nombre, nous devons en vérifier chaque caractère. Une chaîne est un nombre lorsque tous les caractères sont des nombres. Dans cet article, nous utilisons également la logique pour vérifier les nombres négatifs. Lorsque le premier caractère est un signe négatif, vérifiez si le caractère suivant est un nombre. Si oui, vérifiez le reste. Ce programme peut être étendu pour vérifier les nombres à virgule flottante. Désormais, cela ne fonctionne que pour les entiers positifs et négatifs.

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer