Maison >développement back-end >C++ >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.
Étant donné une chaîne, la tâche consiste à vérifier si elle représente un nombre hexadécimal valide.
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.
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; }
L'exécution du code ci-dessus affichera
ABCD1234 represents a valid hexadecimal number. 12G4F5 does not represent a valid hexadecimal number.
La complexité temporelle de la solution est O(N), où N est la longueur de la chaîne.
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.
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.
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!