Necesito escribir una función que cuente palabras en una cadena. Para el propósito de esta asignación, una "palabra" se define como una secuencia de caracteres no nulos, espacios en blanco, separados de otras palabras por espacios en blanco .Contando palabras en una cadena - programación c
Esto es lo que tengo hasta ahora:
int words(const char sentence[ ]);
int i, length=0, count=0, last=0;
length= strlen(sentence);
for (i=0, i<length, i++)
if (sentence[i] != ' ')
if (last=0)
count++;
else
last=1;
else
last=0;
return count;
No estoy seguro de si funciona o no, porque no puedo probarlo hasta que finalice todo mi programa y no estoy seguro de que funcionará, ¿Hay una mejor manera de escribir esta función?
La etiqueta de la tarea es [obsoleta] (http://meta.stackexchange.com/questions/147100/the-homework-tag-is-now-officially-deprecated). Por favor no lo uses En cuanto a su pregunta, mi primer pensamiento fue 'strtok', ya que separar cosas es lo que debe hacer. De todos modos, 'if (sentencia [i]> = '!' && oración [i]> = '~')' tiene algo un poco incorrecto más allá de confiar en ASCII para ser utilizado. – chris
¿Cuál es el punto de '!' Y '~'? * Todo * lo que no es espacio en blanco es parte de una palabra. –
Gracias, así que lo cambié a! = '' – PhillToronto