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;
}
#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.