Convertir cadena ASCII (char []) para la cadena octal (char []) en C

C | Convertir una cadena ASCII a cadena octal : Aquí, vamos a aprender cómo convertir una cadena dada (que contiene caracteres ASCII) para su cadena octal equivalente en C ?

Dada una cadena ASCII (char []) y tenemos que convertirlo en cadena octal (char []) en C.

Lógica:

Para convertir una cadena ASCII a cadena octal , siga los pasos mencionados a continuación:

  • Extracto de caracteres de la cadena de entrada y convertir el carácter en formato octal utilizando % 02o especificador de formato, % 02o da 0 acolchado dos bytes valor octal de cualquier valor (como int , char ).
  • Añadir estos dos bytes (caracteres), que es un valor octal de un carácter ASCII a la cadena de salida.
  • después de cada iteración aumentar contador de bucle de la cadena de entrada ( bucle ) por 1 y contador de bucle de cadena de salida ( i ) por 2.
  • Al final del bucle, insertar un NULL carácter a la cadena de salida.

Ejemplo: “¡Hola mundo”

    Input: "Hello world!"
Output: "111415151540161516151441"

C programa para convertir char ASCII [] para char octal []

En este ejemplo, ascii_str es una cadena de entrada que contiene , estamos convirtiendo en una cadena octal. A continuación, creamos una función void string2OctalString (* char de entrada, de salida char *) , a cadena ASCII convertido a cadena octal , la cadena de salida final se almacena en oct_str variable.

#include <stdio.h>
#include <string.h>
//function to convert ascii char[] to octal-string (char[])
void string2OctalString(char* input, char* output)
{
int loop;
int i;
i=0;
loop=0;
while(input[loop] != '_CP1_')
{
sprintf((char*)(output+i),"%02o", input[loop]);
loop+=1;
i+=2;
}
//insert NULL at the end of the output string
output[i++] = '_CP1_';
}
int main(){
char ascii_str[] = "Hello world!";
//declare output string with double size of input string
//because each character of input string will be converted
//in 2 bytes
int len = strlen(ascii_str);
char oct_str[(len*2)+1];
//converting ascii string to octal string
string2OctalString(ascii_str, oct_str);
printf("ascii_str: %sn", ascii_str);
printf("oct_str: %sn", oct_str);
return 0;
}

salida

ascii_str: Hello world!
oct_str: 111415151540161516151441

Leer más …

  • Octal literales en lenguaje C
  • trabajar con números octales en lenguaje C
  • de trabajo con los números hexadecimales en lenguaje C


Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *