Cita:
Iniciado por Lauri23 gracias por la ayuda vangopd.
Lo que pasa q el profe dijo qse hiciera con puntero y aritmetica de punteros...q es como no me sale a mi :(
Una manera seria así:
Código C:
Ver original#include <stdio.h>
void QuitaEspacios(char *s)
{
char *p = s; /* p al inicio apunta al principio de la cadena */
/* Se irá leyendo de s y se irá escribiendo en p. *
* s irá incrementando en cada repetición del bucle. *
* p sólo incrementará al añadirle un carácter que no sea un espacio. *
*/
/* se recorre la cadena s hasta que se llegue al final '\0' */
while (*s != '\0')
{
if (*s != ' ')
{
*p = *s;
p++;
}
/*printf("%c", *s); */
s++;
}
/* finalmente añadirle el caracter de fin de cadena */
*p = '\0';
}
int main(void)
{
char cadena[] = "Esto es una cadena con espacios ";
printf("cadena antes: %s\n", cadena
);
/* modifica la cadena quitandole los espacios */
QuitaEspacios(cadena);
printf("cadena despues: %s\n", cadena
);
return 0;
}
Pero sintetizando puede quedar así:
Código C:
Ver originalvoid QuitaEspacios(char *s)
{
char *p = s;
while ((*p = *s++) != '\0')
if (*p != ' ') p++;
}
Un saludo!