とりあえず char Val[2] = ""; をswitchの外に出してみ
forの1行上(loop直後)とか

switchのcase内で変数の初期化するなって赤字でwarning出てない?