Ver Mensaje Individual
  #4 (permalink)  
Antiguo 28/11/2013, 17:04
vosk
 
Fecha de Ingreso: agosto-2012
Mensajes: 601
Antigüedad: 12 años, 4 meses
Puntos: 83
Respuesta: contar palabras de una cadena

Aun cuando las propuestas anteriores son perfectas te comento que tambien puedes tokenizar por espacios:

Código C:
Ver original
  1. char *pch, tok[] = " ";
  2. int ctd = 0;
  3.  
  4. pch = strtok(text, tok);
  5. do {
  6.     ctd++;
  7. } while (pch = strtok(0, tok));

Esto te permite de una forma simple añadir modificaciones; supongamos que quieres contar palabras en idiomas que aceptan el apostrofe sin mediar espacios: "They're some things", en este caso el contador de palabras por espacios te dirá que hay 3 palabras cuando en verdad hay 4, lo solucionas añadiendo el caracter apostrofe al token char tok[] = " '" O en idiomas donde los pronombres se apostillan al final separados por un guion: "Pots deixar-me tal cosa", en este caso amplias los tokens con el guion char tok[] = " '-"

Recuerda que todo esto no sirve en el mundo real donde puedes encontrar frases mal espaciadas, tendrias que guardar una copia de la palabra anterior para ver que realmente es una palabra, etc... Tal vez te interesará mirar algo de expresiones regulares, pero ya te comento ahora que eso de las regex pueden complicarse hasta lo impensable.

Saludos
vosk