>>85のコードを見て質問したいのですが、
else{
printf("エラー、入力文字数オーバー\n");
break;
}
この部分ってbreakがelse{}からしか抜け出してないですが、
こういう場合の処置ってもう一回if文書いてbreakって書き方が普通ですか?
たとえばこのコードで言ったら
else文の後にif((i=strlen(str))>=S_MAX-1)break;
って感じで。