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: pedro,, en 24 de Mayo 2016, 00:56
-
Buenas, aquí dejo una posible solución para el ejercicio CU00535F.
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..
#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
-
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!
-
Hola César, gracias por corregir el ejercicio.
Dejo los dos ejercicios por separado, para que se vea mejor.
Ejercicio 1:
#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:
#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.
-
Gracias Pedro, genial!