一応、356を修正しておきます。
int i = 0;
while(~(TempString[i] = ~TempString[i])) i++;
TempString[i] = '\0';
return TempString;