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 04 de Julio 2016, 18:04

Título: Longitud sizeof string.h y strcmp, strcpy, strlen, strcat en lenguajeC CU00535F
Publicado por: Dimitar Stefanov en 04 de Julio 2016, 18:04
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 (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.
Título: Re:Longitud sizeof string.h y strcmp, strcpy, strlen, strcat en lenguajeC CU00535F
Publicado por: Mario R. Rancel en 06 de Julio 2016, 14:14
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