Autor Tema: C (LenguajeC) Funciones para cadenas, strcpy, strlen, sizeof, strcat, CU00535F  (Leído 5886 veces)

pedro,,

  • Moderador Global
  • Experto
  • *******
  • APR2.COM
  • Mensajes: 1292
    • Ver Perfil
Buenas, aquí dejo una posible solución para el ejercicio CU00535F.

Citar
EJERCICIO Nº 1
Escribe un programa que pida tres cadenas al usuario y muestre su longitud (número de letras).
Ejemplo: el usuario introduce como cadenas perro, pez y cocodrilo. El programa mostrará por pantalla. El número de letras para perro es 5. El número de letras para pez es 3. El número de letras para cocodrilo es 9.

EJERCICIO Nº 2
Escribe un programa que pida tres cadenas al usuario y muestre el resultado de concatenar las dos primeras letras de las cadenas introducidas y que indique si las dos primeras cadenas son iguales.
Ejemplo: el usuario introduce como cadenas perro, vaca y cocodrilo. El programa mostrará por pantalla: “El resultado de concatenar las dos primeras letras de las cadenas es: pevaco. La primera cadena, perro, no es igual a la segunda cadena, vaca.”
Si el usuario introdujera perro, perro, mulo, el programa debería mostrar: “El resultado de concatenar las dos primeras letras de las cadenas es pepemu. La primera cadena, perro, es igual a la segunda cadena, perro.”

Realicé los dos ejercicios en un mismo código, creo que me lié un poco y no estoy seguro de si mi propuesta de código será muy acertada..

Código: [Seleccionar]
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main() {
    typedef char TipoCadenas[50];
    TipoCadenas cadenas[3];
    TipoCadenas nuevaCadena[3];
    int i = 0;
    int j = 0;
    int resComparacion = 0;
    for(i = 0; i < 3; i++){
        printf("Introduzca una cadena de texto: ");
        gets(cadenas[i]);
    }
    puts("");
    for(i = 0; i < 3; i++){
        printf("\tEl n\xA3mero de letras de la cadena %d, \"%s\" es %d letras.\n", i+1, cadenas[i], strlen(cadenas[i]));
    }
    for(i=0; i<3; i++){
        for(j=0; j<3; j++){
            if(j==2){
                nuevaCadena[i][j] = '\0';
            }else{
                nuevaCadena[i][j] = cadenas[i][j];
            }
        }
    }
    printf("\n\nEl resultado de concatenar las dos primeras letras de las cadenas es: \"%s\".\n",
            strcat(strcat(nuevaCadena[0], nuevaCadena[1]), nuevaCadena[2]));
    resComparacion = strcmp(cadenas[0], cadenas[1]);
    if (resComparacion ==0) {
        printf("La primera cadena, \"%s\", es igual a la segunda cadena, \"%s\".\n", cadenas[0], cadenas[1]);
    } else {
        printf("La primera cadena, \"%s\", no es igual a la segunda cadena, \"%s\".\n", cadenas[0], cadenas[1]);
    }
    return 0;
}

Saludos. ;D

César Krall

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2077
  • No vales por lo que dices, sino por lo que haces
    • Ver Perfil
    • aprenderaprogramar.com
Hola! Por criterios didácticos normalmente evitamos unir ejercicios. Básicamente el motivo es permitir que se puedan realizar comparaciones entre distintas formas de solucionar un mismo ejercicio. En definitiva, aunque el código esté bien y el resultado sea correcto, como uno de los objetivos de la web es el aprendizaje, tratamos de seguir lo dicho

Saludos!
Responsable de departamento de producción aprenderaprogramar.com

pedro,,

  • Moderador Global
  • Experto
  • *******
  • APR2.COM
  • Mensajes: 1292
    • Ver Perfil
Hola César, gracias por corregir el ejercicio.

Dejo los dos ejercicios por separado, para que se vea mejor.

Ejercicio 1:
Código: [Seleccionar]
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main() {
    typedef char TipoCadenas[50]; //
    TipoCadenas cadenas[3];
    int i = 0;
    for(i = 0; i < 3; i++){ // Se piden tres cadenas de texto
        printf("Introduzca una cadena de texto: ");
        gets(cadenas[i]);
    }
    puts("");
    for(i = 0; i < 3; i++){ // Se muestran las tres cadenas de texto
        printf("\tEl n\xA3mero de letras de la cadena %d, \"%s\" es %d letras.\n", i+1, cadenas[i], strlen(cadenas[i]));
    }
}

Ejercicio 2:

Código: [Seleccionar]
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main() {
    typedef char TipoCadenas[50]; //
    TipoCadenas cadenas[3];
    TipoCadenas nuevaCadena[3];
    int i = 0;
    int j = 0;
    int resComparacion = 0;
    for(i = 0; i < 3; i++){ // Se piden tres cadenas de texto
        printf("Introduzca una cadena de texto: ");
        gets(cadenas[i]);
    }
    for(i=0; i<3; i++){ // Se recuperan las dos primeras letras de cada cadena de texto y se guardan en una variable.
        for(j=0; j<3; j++){
            if(j==2){
                nuevaCadena[i][j] = '\0'; // Después de recuperar las dos letras, introducimos el final de cadena.
            }else{
                nuevaCadena[i][j] = cadenas[i][j];
            }
        }
    }
    printf("\nEl resultado de concatenar las dos primeras letras de las cadenas es: \"%s\".\n\n",
            strcat(strcat(nuevaCadena[0], nuevaCadena[1]), nuevaCadena[2]));
    resComparacion = strcmp(cadenas[0], cadenas[1]);
    if (resComparacion ==0) {
        printf("La primera cadena, \"%s\", es igual a la segunda cadena, \"%s\".\n", cadenas[0], cadenas[1]);
    } else {
        printf("La primera cadena, \"%s\", no es igual a la segunda cadena, \"%s\".\n", cadenas[0], cadenas[1]);
    }
    return 0;
}

Saludos.


César Krall

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2077
  • No vales por lo que dices, sino por lo que haces
    • Ver Perfil
    • aprenderaprogramar.com
Gracias Pedro, genial!
Responsable de departamento de producción aprenderaprogramar.com

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".