Foros aprenderaprogramar.com

Aprender a programar => C, C++, C#, Java, Visual Basic, HTML, PHP, CSS, Javascript, Ajax, Joomla, MySql y más => Mensaje iniciado por: Dimitar Stefanov en 29 de Junio 2016, 17:00

Título: Tipos básicos de datos en C int long char Función printf en lenguajeC CU00523F
Publicado por: Dimitar Stefanov en 29 de Junio 2016, 17:00
Buenas. Os dejo una posible solución del ejercicio CU00523F del tutorial lenguajeC desde cero.

Citar
EJERCICIO

Crea un programa donde se cumplan estas indicaciones. Declara cuatro variables: una de tipo entero y nombre edad, otra de tipo long y nombre distancia, otra de tipo carácter y nombre letra y otra de tipo array de caracteres y nombre cadenaTexto. Asígnales, respectivamente, los siguientes valores: 21, 488321, k, alameda. Muestra dichos contenidos por pantalla. A continuación asigna respectivamente, los siguientes valores a las variables: 22, 666543, t, arboleda. Muestra dichos contenidos por pantalla.

La solución:

Código: [Seleccionar]
#include <stdio.h>
#include <stdlib.h>

int main(){
    int edad = 21;
    long distancia = 488321;
    char letra = 'k';
    char cadenaTexto[9];
    cadenaTexto[0] = 'a';
    cadenaTexto[1] = 'l';
    cadenaTexto[2] = 'a';
    cadenaTexto[3] = 'm';
    cadenaTexto[4] = 'e';
    cadenaTexto[5] = 'd';
    cadenaTexto[6] = 'a';

    printf("edad vale %d, distancia vale %ld, letra vale %c, cadenaTexto vale %s\n\n\n", edad, distancia, letra, cadenaTexto);

    edad = 22;
    distancia = 666543;
    letra = 't';
    cadenaTexto[0] = 'a';
    cadenaTexto[1] = 'r';
    cadenaTexto[2] = 'b';
    cadenaTexto[3] = 'o';
    cadenaTexto[4] = 'l';
    cadenaTexto[5] = 'e';
    cadenaTexto[6] = 'd';
    cadenaTexto[7] = 'a';

    printf("edad vale %d, distancia vale %ld, letra vale %c, cadenaTexto vale %s", edad, distancia, letra, cadenaTexto);

    return 0;

}

No entiendo porque el array tiene que tener 9 índices si la cadena más larga que ponemos es de 8 letras.

Gracias.
Título: Re:Tipos básicos de datos en C int long char Función printf en lenguajeC CU00523F
Publicado por: César Krall en 05 de Julio 2016, 15:55
Hola! Todo bien. Los arrays de caracteres en C "tienen truco" porque requieren de un carácter oculto al final de la cadena (un carácter que no es visible sino que sirve como señal de fin de cadena). Esto se explica más adelante en el curso (http://aprenderaprogramar.com/index.php?option=com_content&view=article&id=934:funciones-para-cadenas-en-c-longitud-sizeof-stringh-y-strcpy-strlen-strcat-strcmp-ejemplos-cu00535f&catid=82:curso-basico-programacion-lenguaje-c-desde-cero&Itemid=210)

Saludos!