C言語なんですが

for( i = 0 ; getchar(str[i]) != EOF && i < STR_MAX ; i++ )

こんな感じで書くことは出来ないんでしょうか?
エラーが出るってことは無理なんですよね
前に何かの参考書でこのような式を見たような気がしたんですけど・・・