Obtenga el valor ASCII de Char en C++
-
Utilice
std::copy
ystd::ostream_iterator
para obtener el valor ASCII dechar
-
Utilice especificadores de formato
printf
para obtener el valor ASCII dechar
-
Utilice
int()
para obtener el valor ASCII dechar
Este artículo explicará varios métodos de cómo obtener el valor ASCII de char
en C++.
Utilice std::copy
y std::ostream_iterator
para obtener el valor ASCII de char
La codificación de caracteres ASCII es casi omnipresente en las computadoras, aunque desde entonces surgieron nuevos esquemas estándar, como UTF-8 y otros. Originalmente, ASCII codificaba letras en inglés, dígitos decimales, símbolos de puntuación y algunos códigos de control adicionales. Todos estos símbolos se representan utilizando algún valor entero del rango [0 - 127]
. Dado que los tipos char
se implementan como enteros, podemos tratar sus valores y enviarlos al flujo cout
usando el algoritmo ostream_iterator<int>
y std::copy
. Observe que las letras del alfabeto consecuentes tienen valores numéricos vecinos.
#include <iostream>
#include <iterator>
#include <vector>
using std::copy;
using std::cout;
using std::endl;
using std::vector;
int main() {
vector<char> chars{'g', 'h', 'T', 'U', 'q', '%', '+', '!', '1', '2', '3'};
cout << "chars: ";
std::copy(chars.begin(), chars.end(), std::ostream_iterator<int>(cout, "; "));
return EXIT_SUCCESS;
}
Producción :
chars: 103; 104; 84; 85; 113; 37; 43; 33; 49; 50; 51;
Utilice especificadores de formato printf
para obtener el valor ASCII de char
La función printf
es otra alternativa para generar los valores char
con los códigos ASCII correspondientes. Tenga en cuenta que printf
toma ambos argumentos como tipos char
y solo diferencia los especificadores de formato %c
/%d
. Aunque los últimos especificadores suelen estar documentados como formateadores char
e int
, respectivamente, son compatibles con los tipos de los demás.
#include <iostream>
#include <vector>
using std::cout;
using std::endl;
using std::vector;
int main() {
vector<char> chars{'g', 'h', 'T', 'U', 'q', '%', '+', '!', '1', '2', '3'};
cout << endl;
for (const auto &number : chars) {
printf("The ASCII value of '%c' is: %d\n", number, number);
}
return EXIT_SUCCESS;
}
Producción :
The ASCII value of 'g' is: 103
The ASCII value of 'h' is: 104
The ASCII value of 'T' is: 84
The ASCII value of 'U' is: 85
The ASCII value of 'q' is: 113
The ASCII value of '%' is: 37
The ASCII value of '+' is: 43
The ASCII value of '!' is: 33
The ASCII value of '1' is: 49
The ASCII value of '2' is: 50
The ASCII value of '3' is: 51
Utilice int()
para obtener el valor ASCII de char
Finalmente, uno puede convertir valores char
usando la notación int(c)
y enviar los valores directamente al flujo cout
como cualquier otra variable. Tenga en cuenta que este ejemplo tiene más estilo C++ que la versión printf
con sus especificadores de formato. Por el contrario, los valores de caracteres ASCII se pueden imprimir a partir de los valores int
utilizando la notación char(i)
.
#include <iostream>
#include <vector>
using std::cout;
using std::endl;
using std::vector;
int main() {
vector<char> chars{'g', 'h', 'T', 'U', 'q', '%', '+', '!', '1', '2', '3'};
cout << endl;
for (auto &number : chars) {
cout << "The ASCII value of '" << number << "' is: " << int(number) << endl;
}
return EXIT_SUCCESS;
}
Producción :
The ASCII value of 'g' is: 103
The ASCII value of 'h' is: 104
The ASCII value of 'T' is: 84
The ASCII value of 'U' is: 85
The ASCII value of 'q' is: 113
The ASCII value of '%' is: 37
The ASCII value of '+' is: 43
The ASCII value of '!' is: 33
The ASCII value of '1' is: 49
The ASCII value of '2' is: 50
The ASCII value of '3' is: 51
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 Facebook