下面的程序来自 Gayle Laakmann McDowell 的《Cracking the coding 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#。在通过谷歌研究并使用代码之后,下面是我所拥有的。我是一个初学者,真的卡住了。我没有得到我期望的价值。有人可以告诉我我做错了什么吗?
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)
{
}
}