Convertir une chaîne de caractères en Hex en C++
-
Utilisez
std::cout
etstd::hex
pour convertir une chaîne de caractères en valeur hexadécimale en C++ -
Utilisez
std::stringstream
etstd::hex
pour convertir la chaîne de caractères en valeur hexadécimale en C++
Cet article présente plusieurs méthodes pour convertir une chaîne de caractères en hexadécimal en C++.
Utilisez std::cout
et std::hex
pour convertir une chaîne de caractères en valeur hexadécimale en C++
La notation hexadécimale est un format courant pour la lecture de fichiers binaires représentant des fichiers de programmes, des formats codés ou simplement du texte. Ainsi, il faudrait générer le contenu des fichiers avec des données hexadécimales et le sortir selon les besoins.
Dans cet exemple, nous sortons l’objet string
stocké sous forme de caractères hexadécimaux sur la console. Notez que le C++ fournit un manipulateur d’E/S std::hex
qui peut modifier la base de nombres des données du flux. Un objet string
doit être décomposé en caractères uniques et ensuite modifié individuellement avec std::hex
pour obtenir leur représentation hexadécimale respective. Nous implémentons la boucle basée sur la plage pour itérer sur les caractères string
et rediriger les données modifiées vers le flux cout
.
#include <iostream>
#include <iterator>
#include <sstream>
#include <string>
using std::cout;
using std::endl;
using std::hex;
using std::string;
using std::stringstream;
int main() {
string s1 = "This will be converted to hexadecimal";
string s2;
cout << "string: " << s1 << endl;
cout << "hexval: ";
for (const auto &item : s1) {
cout << hex << int(item);
}
cout << endl;
return EXIT_SUCCESS;
}
Production :
string: This will be converted to hexadecimal
hexval: 546869732077696c6c20626520636f6e76657274656420746f2068657861646563696d616c
Utilisez std::stringstream
et std::hex
pour convertir la chaîne de caractères en valeur hexadécimale en C++
La méthode précédente n’a pas la caractéristique de stocker les données hexadécimales dans l’objet. La solution à ce problème est de créer un objet stringstream
, dans lequel nous insérons les valeurs hexadécimales des caractères string
en utilisant l’itération. Une fois que les données sont dans stringstream
, il peut construire un nouvel objet string
pour stocker les données de caractères modifiées.
Notez que les données peuvent être sorties directement de l’objet stringstream
, mais dans l’exemple de code suivant, une forme plus simple - cout << string
est utilisée. Un autre cas d’utilisation finale pourrait être d’écrire les données hexadécimales directement dans le fichier, en utilisant les utilitaires de système de fichiers de la bibliothèque standard.
#include <iostream>
#include <iterator>
#include <sstream>
#include <string>
using std::cout;
using std::endl;
using std::hex;
using std::string;
using std::stringstream;
int main() {
string s1 = "This will be converted to hexadecimal";
string s2;
stringstream ss;
cout << "string: " << s1 << endl;
for (const auto &item : s1) {
ss << hex << int(item);
}
s2 = ss.str();
cout << "hexval: " << s2 << endl;
return EXIT_SUCCESS;
}
Production :
string: This will be converted to hexadecimal
hexval: 546869732077696c6c20626520636f6e76657274656420746f2068657861646563696d616c
Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.
LinkedIn FacebookArticle connexe - C++ String
- Comparaison de chaîne et de caractère en C++
- Supprimer le dernier caractère d'une chaîne en C++
- Obtenir le dernier caractère d'une chaîne en C++
- Différences entre l'opérateur sizeof et la fonction strlen pour les chaînes en C++
- Effacer la chaîne en C++
- Imprimer toutes les permutations de la chaîne en C++