Autor Tema: Longitud sizeof string.h y strcmp, strcpy, strlen, strcat en lenguajeC CU00535F  (Leído 2889 veces)

Dimitar Stefanov

  • Experto
  • *****
  • Mensajes: 598
    • Ver Perfil
Buenas tardes. Expongo una posible solución de los ejercicios de la entrega CU00535F del curso lenguajeC desde cero.

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.

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

int main() {
    char cadena01[50], cadena02[50], cadena03[50];
    printf("Introduzca una palabra: ");
    scanf("%s", &cadena01);
    printf("Intruduzca otra palabra: ");
    scanf("%s", &cadena02);
    printf("Intruduzca una %cltima palabra: ", 163);
    scanf("%s", &cadena03);

    printf("El n%cmero de letras para \"%s\" es: %d\n", 163, cadena01, strlen(cadena01));
    printf("El n%cmero de letras para \"%s\" es: %d\n", 163, cadena02, strlen(cadena02));
    printf("El n%cmero de letras para \"%s\" es: %d\n", 163, cadena03, strlen(cadena03));


    return 0;
}

Citar
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.”

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

int main() {
    char cadena01[50], cadena02[50], cadena03[50], subCadena01[3], subCadena02[3], subCadena03[3];
    printf("Introduzca una palabra: ");
    scanf("%s", &cadena01);
    subCadena01[0] = cadena01[0];
    subCadena01[1] = cadena01[1];
    subCadena01[2] = '\0';
    printf("Intruduzca otra palabra: ");
    scanf("%s", &cadena02);
    subCadena02[0] = cadena02[0];
    subCadena02[1] = cadena02[1];
    subCadena02[2] = '\0';
    printf("Intruduzca una %cltima palabra: ", 163);
    scanf("%s", &cadena03);
    subCadena03[0] = cadena03[0];
    subCadena03[1] = cadena03[1];
    subCadena03[2] = '\0';


    printf("El resultado de concatenar las dos primeras letras de las palabras es: %s.\n", strcat(strcat(subCadena01,subCadena02),subCadena03));

    if(strcmp(cadena01,cadena02)==0){
        printf("La primera palabra, %s, es igual a la segunda palabra, %s.", cadena01, cadena02);
    }else{
        printf("La primera palabra, %s, no es igual a la segunda palabra, %s.", cadena01, cadena02);
    }

    return 0;

}

Aunque debo reconocer que me ha gustado mucho más la forma de cómo lo haya solucionado nuestro compañero y experto Pedro. Pueden encontrar su solución en el siguiente enlace: https://www.aprenderaprogramar.com/foros/index.php?topic=4626.msg18928#msg18928

Me surge la duda, ¿no existe el método "substring" en el lenguaje C igual que en JavaScript o en Java (entre otros)?

Gracias.
« Última modificación: 06 de Julio 2016, 14:07 por Mario R. Rancel »

Mario R. Rancel

  • Administrador
  • Experto
  • ********
  • APR2.COM
  • Mensajes: 1978
    • Ver Perfil
Buenas tardes todo bien, pues creo que substring tal cual no existe en C, aunque podrías crearte tú mismo una función que haga el mismo cometido ya que hay formas de emular lo que sería el substring de otros lenguajes. Hay bastantes cosas en que C difiere de lenguajes que a primera vista parecen parecidos.

Saludos

 

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".