Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

153
Vistas
Cadenas y arreglos en lenguaje C
#include <stdio.h> int main() { printf("%d", "123456"[1]); return 0; }

La salida esperada es 123456, pero en realidad genera 50. ¿Por qué?

over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

"123456"[1] da el carácter '2' . El valor ascii de ese carácter es 50 .

Para imprimir el número completo haga: printf ("%d", 123456); o printf ("%s", "123456");

over 4 years ago · Santiago Trujillo Denunciar

0

Está intentando imprimir un número entero usando %d pero ha proporcionado un carácter en su lugar. Para obtener el resultado esperado, debe proporcionar un número entero como segundo argumento para imprimir o usar %s como especificador de formato.

printf ("%d", 123456); o printf ("%s", "123456");

Ahora, explicación sobre la salida 50 que está obteniendo:

Aquí, "123456" es un const char * , por lo que cuando intentó obtener el valor de un índice particular usando [1] , toma el índice 1 de su const char * que es char 2 .

índice -> 0 1 2 3 4 5

entrada -> 1 2 3 4 5 6

Ahora, mientras imprimía usando el especificador de formato %d (entero), imprimió el valor ASCII de char 2 , que es 50 .

over 4 years ago · Santiago Trujillo Denunciar

0

Si necesita la cadena exacta, entonces no hay necesidad de especificadores de formato, simplemente puede hacerlo

 printf("123456");

Obtiene una salida como 50 porque en C String se considera una matriz de caracteres y también puede encasillar valores de acuerdo con los especificadores de formato.

Así que aquí "123456" se convierte en una matriz. char en 1 el índice es 2. y el valor entero de char "2", es decir, el valor ascii de 2 es 50. Por lo tanto, la salida.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda