Maison > développement back-end > C++ > Vérifiez si une chaîne représente un nombre hexadécimal

Vérifiez si une chaîne représente un nombre hexadécimal

PHPz
Libérer: 2023-09-25 11:45:04
avant
1248 Les gens l'ont consulté

Vérifiez si une chaîne représente un nombre hexadécimal

En informatique, l'hexadécimal est un système numérique basé sur 16. Il utilise 16 symboles différents, dont les dix chiffres décimaux de 0 à 9 et les six lettres A, B, C, D, E et F pour représenter les nombres de 0 à 15. Dans cet article, nous verrons comment vérifier si une chaîne représente un nombre hexadécimal.

Énoncé du problème

Étant donné une chaîne, la tâche consiste à vérifier si elle représente un nombre hexadécimal valide.

Méthode

Nous pouvons résoudre ce problème en itérant les caractères de la chaîne et en vérifiant s'ils appartiennent à un jeu de caractères hexadécimaux valide. Les caractères hexadécimaux valides sont les chiffres de 0 à 9 et les lettres de A à F (indépendamment des majuscules ou des minuscules). Si tous les caractères de la chaîne appartiennent à ce jeu de caractères, la chaîne représente un nombre hexadécimal valide.

Exemple

Voici l'implémentation du code C++ de la méthode ci-dessus :

#include <iostream>
#include <string>

using namespace std;

bool isHexadecimal(string s) {
   int n = s.length();
   
   for (int i = 0; i < n; i++) {
      if (!isxdigit(s[i])) {
         return false;
      }
   }
   
   return true;
}

int main() {
   string s1 = "ABCD1234";
   string s2 = "12G4F5";
   
   if (isHexadecimal(s1)) {
      cout << s1 << " represents a valid hexadecimal number." << endl;
   } else {
      cout << s1 << " does not represent a valid hexadecimal number." << endl;
   }
   
   if (isHexadecimal(s2)) {
      cout << s2 << " represents a valid hexadecimal number." << endl;
   } else {
      cout << s2 << " does not represent a valid hexadecimal number." << endl;
   }
   
   return 0;
}
Copier après la connexion

Sortie

L'exécution du code ci-dessus affichera

ABCD1234 represents a valid hexadecimal number.
12G4F5 does not represent a valid hexadecimal number.
Copier après la connexion

Complexité temporelle

La complexité temporelle de la solution est O(N), où N est la longueur de la chaîne.

Complexité spatiale

La complexité spatiale de la solution est O(1).

Dans le code ci-dessus, nous avons défini une fonction isHexadecimal qui accepte une chaîne en entrée et renvoie vrai si la chaîne représente un nombre hexadécimal valide, sinon elle renvoie faux. Nous utilisons la fonction isxdigit pour vérifier si chaque caractère de la chaîne appartient à un jeu de caractères hexadécimaux valide.

Cas de test

Prenons deux chaînes s1 = "ABCD1234" et s2 = "12G4F5". La chaîne s1 représente un nombre hexadécimal valide car tous les caractères de la chaîne appartiennent au jeu de caractères hexadécimaux valide. D'un autre côté, la chaîne s2 ne représente pas un nombre hexadécimal valide car elle contient un caractère « G » qui n'est pas un caractère hexadécimal valide.

Conclusion

En résumé, nous pouvons facilement vérifier si une chaîne représente un nombre hexadécimal valide en parcourant les caractères de la chaîne et en vérifiant s'ils appartiennent à un jeu de caractères hexadécimaux valide.

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!

Étiquettes associées:
source:tutorialspoint.com
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