[ Foro de C ]

Duda con código solución 5.2.4

20-Sep-2010 18:52
Gabriel Trabanco
2 Respuestas

Bueno he desarrollado la solución:

/*******************************
* Ejercicio 5.2.4 del manual   *
* de C básico de:              *
*    Nacho Cabanes             *
* www.nachocabanes.com/c/curso *
*******************************/

//Incluimos las librerías necesarias
#include <stdio.h> //Estándard
#include <string.h> //Cadenas

//Variables que vamos a usar

char text[41]; //Almacenaremos el texto

int letter=0; //Para el búcle


//Inicio del programa
int main () {
   //Pedimos que escriba el Hola, que tal? del ejercicio
   printf("Introduzca el texto: ");
   
   //Recogemos los 40 caracteres
   //(recuerdo que pedimos 41 por que el último es un caracter de fin de cadena)
   gets(text);
   
   //Búcle para imprimir la cadena
   for(letter=0; letter<strlen(text); letter++) {
       //Si no es un espacio lo mostramos
       if(text[letter] != ' ') printf("%c", text[letter]);
   }
   
   //No es necesario pero indicará que el programa acabó sin errores
   return 0;
}

En la línea:
if(text[letter] != ' ') printf("%c", text[letter]);

Si uso " ", no funciona da un error de punteros o algo así. Quería saber si tiene algo que ver con que procese lo que está entre comillas dobles y no simples como PHP o algo así. Y que si alguien es tan amable lo explique por que yo no lo se si no es por eso.


Nacho para las soluciones, ¿Podría hacerse un wiki y que cada usuario que quiera aporte la suya? Ya que un problema en programación tiene multiples soluciones, aunque solo 1 es la más correcta que no la más eficiente (o no siempre o todos los lenguajes de programación [cuanta variable!]).

Un Saludo y gracias.

PAZ!

-- Edito --

No se si es importante pero uso XCode en Snow Leopard (está todo actualizado).

Por favor algo para resaltar código o algo así en el foro y enumerar las líneas :P jajaja (puestos a pedir...).


19-Oct-2010 09:53
Nacho Cabanes (+83)

Perdona, Gabriel, se me había pasado tu mensaje. Decias:

---

En la línea:
if(text[letter] != ' ') printf("%c", text[letter]);

Si uso " ", no funciona da un error de punteros o algo así. Quería saber si tiene algo que ver con que procese lo que está entre comillas dobles y no simples como PHP o algo así. Y que si alguien es tan amable lo explique por que yo no lo se si no es por eso.

---

Por supuesto que tiene que ver. Un carácter se indica siempre comillas simples. Si usas " " es una cadena de texto que contiene sólo un espacio... pero una cadena de texto al fin y al cabo, de modo que no se puede comparar con "text[letter]", que claramente sí es una letra.

Por cierto, lo del wiki es buena idea, pero un wiki es susceptible de "destrozos" y yo ahora mismo no podría vigilarlo tanto como me gustaría. Prefiero ir recopilando yo vuestras contribuciones (con vuestro nombre, para que no se pierda quien hizo el trabajo) y publicarlas en la página oficial del curso.


06-Nov-2010 22:18
Gabriel Trabanco

El wiki se puede restringir para que ciertos usuarios registrados puedan modificar contenido y, sin embargo, todos puedan ver el contenido (registrados y no registrados).

Un Saludo nacho y gracias por tú aclaración :)






(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)