以下のプログラムは、Gayle Laakmann McDowell 著「Cracking thecoding interview」という本からのものです。
元のコードは C で書かれています。
元のコードは次のとおりです。
void reverse(char *str) {
char * end = str;
char tmp;
if (str) {
while (*end) {
++end;
}
--end;
while (str < end) {
tmp = *str;
*str++ = *end;
*end-- = tmp;
}
}
}
私はC#でそれを変換しようとしています。Google で調査し、コードで遊んだ後、以下が私が持っているものです。私は初心者で、本当に立ち往生しています。期待する値が得られません。誰かが私が間違っていることを教えてもらえますか?
class Program
{
unsafe void reverse(char *str)
{
char* end = str;
char tmp;
if (str) // Cannot implicitly convert type 'char*' to 'bool'
{
while(*end) // Cannot implicitly convert type 'char*' to 'bool'
{
++end;
}
--end;
while(str < end)
{
tmp = *str;
*str += *end;
*end -= tmp;
}
}
}
public static void Main(string[] args)
{
}
}