[ Ice-D @ 05.12.2008. 11:09 ] @
Code:
#include <stdio.h>
int main()
{
    int ch;
    int cnt = 0;
    int i;
    while ( (ch = getchar () ) != EOF )
    {
        cnt++;
        if ( ( ch == ' ' ) || '\n')
        {    
            for ( i = 0; i < cnt; i++ )
                printf ( "*" );
            printf ( "\n" );
            cnt = 0;
        }
    }
    return 0;
}

U zadatku se traži: za svaku riječ isprintati onoliko * koliko je riječ duga. Što mene muči? Ja pokrenem debager, dođem do while ( (ch = getchar () ) != EOF ) unesem naprimer: asdb ght rb , stisnem ENTER, dođem do if ( ( ch == ' ' ) || '\n') provjerava se 'a' == ' ' || '\n' i on vrati True!!? i uđe u for petlju, ako napišem u kodu if ( ( ch == ' ' ) dakle bez '\n' vrati false. I nije problem samo u '\n' ako stavim bilo koji znak on vraća True. Koliko sam shavatio Or operator vraća True ako je 1 ili 2 operanta True. Ovde očito oba vraćaju False 'a' == ' ' || '\n'. a nije jednako praznom znaku ni novom redu. Ne želim da mi se riješi zadatak već da shvatim u čemu grešim.
[ Ice-D @ 05.12.2008. 11:11 ] @
baš sam budala, zaboravio sam staviti ch == .... if ( ( ch == ' ' ) || ch == '\n').
[ Aleksandar Ilić @ 09.12.2008. 21:26 ] @
Ovako je jednostavnije. Program za svako slovo iz alfabeta štampa znak *, za novi red štampa novi red, a za sve ostale znakove štampa prazno mesto.

Code:
#include <stdio.h>
#include <ctype.h>

int main()
{
  int ch;
  
  while ((ch = getchar()) != EOF)
  {
    if (isalpha(ch))
      printf("*");
    else
    if (ch == '\n')
      printf("\n");
    else
      printf(" ");
  }
  
  return 0;
}