文字列の回文を出力したいのですが、回文の出力実行で表示がおかしくなるのですが
元々代入されている文字配列へ再度代入するという行為(一番下のfor文の所です)はダメなのでしょうか?

#include <stdio.h>

void main(void){

    int i,j,str_size;
    char str[64];
    puts("文字列の入力");

    fgets(str,64,stdin);

    if(!str) puts("文字列は入力されていません");
    printf("入力された文字列は%sです",str);
    str_size = sizeof(str)/sizeof(str[0]); //文字のサイズ

    for(i=0,j=str_size;i < '\0' , j >= 0 ; i++,j--)
        str[i] = str[j];

    printf("回文は%sです",str);
}