>>405
>for(px=a; *px != '\0'; px++){
>for(i=0; a[i] != '\0'; i++){
何で二重ループしてるの?
pxへの代入が使われてないし、
これだとaの文字数分、内側のループを繰り返すと思うよ
試してないけど

ループは一重でおk
外側のループを消し去ってしまえ