scanf( "%255s" ,str );
とかだとオーバーフロー防げるとかどこかのサイトで見たけど大丈夫なん?