Programa C++ para conversión de int a char

En este artículo, aprenderemos cómo convertir int a char en C++. Para esta conversión, hay 5 formas de la siguiente manera:

    Usando el encasillamiento. Usando static_cast. Usando sprintf(). Usando to_string() y c_str(). Usando secuencia de cadenas.

Comencemos analizando cada uno de estos métodos en detalle.

Ejemplos:

Aporte: norte = 65
Producción: A

Aporte: norte = 97
Producción: a

1. Utilizar el encasillamiento

Método 1:

    Declaración e inicialización: Para comenzar, declararemos e inicializaremos nuestro entero con el valor a convertir. Typecasting: Es una técnica para transformar un tipo de datos en otro. Estamos encasillando el entero N y guardando su valor en la variable char de tipo de datos c. Imprime el personaje: Finalmente, imprime el personaje usando cout.

A continuación se muestra el programa C++ para convertir int a char usando encasillamiento:

C++




// C++ program to convert> // int to char using typecasting> #include> using> namespace> std;> // Driver code> int> main()> {> > int> N = 97;> > cout < <> char> (N);> > return> 0;> }>

Producción

a 

La complejidad del tiempo es O(1) y un espacio auxiliar es O(1).

Método 2:

    Declaración e inicialización: Para comenzar, declararemos e inicializaremos nuestro entero con el valor a convertir. Encasillamiento: Declara otra variable como carácter c y asigna el valor de N a la C. Imprime el carácter: Finalmente, imprime el carácter usando cout.

A continuación se muestra el programa C++ para convertir int a char usando encasillamiento:

C++




// C++ program to convert> // int to char using typecasting> #include> using> namespace> std;> // Driver code> int> main()> {> > int> N = 65;> > char> c = N;> > cout < < c;> > return> 0;> }>

Producción

A 

2. Usando static_cast

El número entero se puede convertir en un carácter usando la función static_cast. A continuación se muestra el programa C++ para convertir int a char usando static_cast:

C++




// C++ program to convert> // int to char using static_cast> #include> using> namespace> std;> // Driver code> int> main()> {> > int> N = 65;> > > char> c => static_cast> <> char> >(N);> > cout < < c;> > return> 0;> }>

Producción

A 

3. Usando sprintf()

Asigne espacio para una única variable int que se convertirá en un búfer de caracteres. Vale la pena señalar que el siguiente ejemplo define la longitud máxima Max_Digits para datos enteros. Debido a que la función sprintf envía una cadena de caracteres que termina en 0 bytes al destino, agregamos sizeof(char) para obtener la longitud del búfer de caracteres. Como resultado, debemos asegurarnos de que se reserve suficiente espacio para este búfer.

A continuación se muestra el programa C++ para convertir int a char usando sprintf():

C++




// C++ program to convert> // int to char using sprintf()> #include> using> namespace> std;> #define Max_Digits 10> // Driver code> int> main()> {> > int> N = 1234;> > char> n_char[Max_Digits +> > sizeof> (> char> )];> > std::> sprintf> (n_char,> > '%d'> , N);> > std::> printf> (> 'n_char: %s '> ,> > n_char);> > return> 0;> }>

Producción

n_char: 1234 

4. Usando to_string() y c_str()

La función to string() transforma una única variable entera u otros tipos de datos en una cadena. El método c_str() convierte una cadena en una matriz de caracteres y termina con un carácter nulo.

A continuación se muestra el programa C++ para convertir int a char usando to_string() y c_str():

C++




// C++ program to convert> // int to char using sto_string()> // and c_str()> #include> using> namespace> std;> // Driver code> int> main()> {> > int> N = 1234;> > string t = to_string(N);> > char> const> *n_char = t.c_str();> > printf> (> 'n_char: %s '> ,> > n_char);> > return> 0;> }>

Producción

n_char: 1234 

5. Usando secuencia de cadenas

Un stringstream conecta un objeto de cadena a un stream, permitiéndole leerlo como si fuera un stream (como cin). Stringstream requiere la inclusión del archivo de encabezado sstream. La clase stringstream resulta útil al procesar entradas.

A continuación se muestra el programa C++ para convertir int a char usando stringstream:

C++




// C++ program to convert> // int to char using> // stringstream> #include> using> namespace> std;> #include> // Driver code> int> main()> {> > int> N = 1234;> > std::stringstream t;> > t < < N;> > char> const> *n_char => > t.str().c_str();> > printf> (> 'n_char: %s '> ,> > n_char);;> > return> 0;> }>

Producción

n_char: 1234 

Método: convertir el valor int a char agregando 0

C++




// C++ program to convert> // int to char using typecasting by adding zero> #include> using> namespace> std;> //Driver code> int> main()> {> > int> number = 65;> > char> charvalue = (> char> (number)+0);> > cout < < charvalue;> > return> 0;> }>

Producción

A 

Complejidad del tiempo: O(1).
Espacio auxiliar: O(1).

Enfoque: enfoque de compensación de valor ASCII

Pasos:

  1. Tome una entrada entera del usuario.
  2. Compruebe si el valor de entrada corresponde a un carácter válido en la tabla ASCII comprobando el rango del valor de entrada.
  3. Si el valor de entrada corresponde a un carácter válido, agregue el valor de desplazamiento correspondiente de '0' o 'A' (según la entrada) al valor entero para obtener el valor de carácter correspondiente.
  4. Imprima el carácter correspondiente.

C++




#include> using> namespace> std;> int> main() {> > int> num = 65;> > cout < <> 'Enter an integer: '> < < num < < endl;> > > char> ch;> > if> (num>= 65 && número <= 90) {> > ch = num;> > }> else> if> (num>= 97 && número <= 122) {> > ch = num;> > }> else> {> > cout < <> 'Invalid input.'> < < endl;> > return> 0;> > }> > > cout < <> 'The corresponding character is: '> < < ch < < endl;> > num = 97;> > cout < <> 'Enter an integer: '> < < num < < endl;> > if> (num>= 65 && número <= 90) {> > ch = num;> > }> else> if> (num>= 97 && número <= 122) {> > ch = num;> > }> else> {> > cout < <> 'Invalid input.'> < < endl;> > return> 0;> > }> > cout < <> 'The corresponding character is: '> < < ch < < endl;> > return> 0;> }>

Producción

Enter an integer: 65 The corresponding character is: A Enter an integer: 97 The corresponding character is: a 

Complejidad del tiempo: O(1), ya que no hay bucles involucrados.
Espacio Auxiliar: O(1), ya que solo usamos una variable de un solo carácter para almacenar el resultado.

Nombre del enfoque: Conversión aritmética

Pasos:

  1. Calcule el número de dígitos en el valor int de entrada.
  2. Repita los dígitos de derecha a izquierda, extrayendo cada dígito y agregando el valor ASCII de '0' para convertirlo en un carácter.
  3. Almacene la matriz de caracteres resultante en el búfer de salida proporcionado.

C++




#include> #include> using> namespace> std;> void> int_to_char(> int> num,> char> *result) {> > int> temp = num;> > int> len = 0;> > while> (temp>0) {> > len++;> > temp /= 10;> > }> > for> (> int> i = len - 1; i>= 0; yo--) {> > result[i] = num % 10 +> '0'> ;> > num /= 10;> > }> > result[len] => ' '> ;> }> int> main() {> > int> num = 12345;> > char> result[100];> > int_to_char(num, result);> > cout < < result < < endl;> > return> 0;> }>

Producción

12345 

Complejidad del tiempo : O (log10 n), donde n es el valor int de entrada.
Complejidad espacial: O (log10 n), donde n es el valor int de entrada, debido a la necesidad de almacenar la matriz de caracteres de salida.