Foros del Web » Programación para mayores de 30 ;) » C/C++ »

contador de espacios en blanco.!!

Estas en el tema de contador de espacios en blanco.!! en el foro de C/C++ en Foros del Web. Hola gente como andan? necesito su ayuda por favor ...resulta que tengo un problema en el que me dicen que ingrese cuatro palabras minimo, separadas ...
  #1 (permalink)  
Antiguo 27/09/2008, 17:12
 
Fecha de Ingreso: septiembre-2008
Mensajes: 1
Antigüedad: 15 años, 7 meses
Puntos: 0
contador de espacios en blanco.!!

Hola gente como andan? necesito su ayuda por favor ...resulta que tengo un problema en el que me dicen que ingrese cuatro palabras minimo, separadas por un espacio en blanco. Si se ingresan menos de 4 palabras tengo que ingresar la oracion que cumpla con el requisito. Lo que hago es lo siguiente.
/* lee es la funcion con la que leo el string*/
int lee(char a[]){
int i=0,contador_blancos=0,n;

printf("\n Ingrese una oracion de cuatro palabras:\n");
gets(a);
while((a[i]!='\0')){
i++;

if((a[i]==' '))&&(a[i-1]!=' ')
contador_blancos++;
if((contador_blancos<2))
printf("\n la oracion no tiene 4 palabras:\n");

printf("\n Ingrese una oracion de cuatro palabras:\n");
gets(a);
}
n=i;
return(n);

El problema es que si ingreso mas de 2 espacios me pide que ingrese otra vez la oracion, es decir no me cuenta los espacios en blanco y se me formo un bucle . Alguien sabe como lo soluciono ??
Se los voy a agradecer.!!!! gracias
  #2 (permalink)  
Antiguo 28/09/2008, 10:47
Avatar de antoniog  
Fecha de Ingreso: junio-2006
Mensajes: 118
Antigüedad: 17 años, 10 meses
Puntos: 4
Respuesta: contador de espacios en blanco.!!

Hola,

Primero debes contar todos los blancos en tu oracion antes de mostrar el mensaje. Es decir, saca del while:
Código:
if((contador_blancos<2))
printf("\n la oracion no tiene 4 palabras:\n");

printf("\n Ingrese una oracion de cuatro palabras:\n");
gets(a);
Ademas, pon las cosas dentro de llaves, por ejemplo lo que va a hacer si contador_blancos<2.

Saludos
__________________
Mis pininos en blogs: prog en C, cursos

Última edición por antoniog; 25/10/2009 a las 13:24
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:13.