Ver Mensaje Individual
  #9 (permalink)  
Antiguo 19/05/2014, 15:16
Avatar de leosansan
leosansan
 
Fecha de Ingreso: mayo-2012
Ubicación: GRAN CANARIA
Mensajes: 194
Antigüedad: 12 años, 6 meses
Puntos: 49
Respuesta: Contar Palabras de una frase? string

Cita:
Iniciado por CalgaryCorpus Ver Mensaje
El problema de contar es un clásico y está lleno de casos especiales.
Los programas ofrecidos pueden tener problemas para algunos casos especiales, de modo que sugiero revisarlos con cuidado.

Ejemplo de caso especial:
¿Como se comporta si el string ingresado son solo espacios en blanco? (el resultado deberia ser 0)
¿Que ocurre si hay espacio en blanco al inicio? ¿Al final? (no deberia haber diferencia respecto al mismo caso sin espacios al inicio o final)
etc.
No creo que haya mayor problema. En la línea de lo que propone vangodp y completada para si el caracter final no es un espacio:

Código C++:
Ver original
  1. #include <stdio.h>
  2.  
  3. int main(){
  4.   char frase[100];
  5.   int i, cont = 0, lon;
  6.   puts("Ingrese una oracion:");
  7.   scanf("%[^\n]s",frase);
  8.   for(lon = 0; frase[lon] ; lon++);
  9.   for(i = 1; frase[i] ; i++)
  10.     if( (frase[i] == ' '  && frase[i-1] != ' '))
  11.       cont++;
  12.   if (frase[lon-1]!= ' ')
  13.     cont++;
  14.   printf("\nNumero de palabras: %d\n", cont);
  15.   return 0;
  16. }

¡¡¡Saluditos!!!