簡単そうに聞こえますが、バグがあり、何が原因かわかりません。
nopunccount = 0;
char *ra = new char[sizeof(npa)];
while (nopunccount <= strlen(npa)) {
ra[nopunccount] = npa[strlen(npa) - nopunccount];
nopunccount++;
}
raは値を取得することはなく、npaにnopunccount範囲内で提供するchar値があることを確認しました。
どんな助けでも大歓迎です//:)