各位懂C++的大虾们,能不能帮小第把下面一段代码翻译成java或是C#,不胜感激啊!
以下是反转一个带有'\0'结束符的字符串的代码:
1 void reverse(char *str) {
2    char * end = str;
3    char tmp;
4    if (str) {
5       while (*end) {
6       ++end;
7    }
8    --end;
9    while (str < end) {
10    tmp = *str;
11    *str++ = *end;
12    *end-- = tmp;
13    }
14   }
15 }

解决方案 »

  1.   

    java里,StringBuffer有这方法。
    java字符串也没有'\0'的说法
      

  2.   

    对啊 可是C++语法一点都不了解 您知道用java怎么写出来吗? 特别是对'\0'它是怎么处理的啊?
      

  3.   

    恩 可以专门写成“abcd\0” 然后做处理,关键是想知道这个代码是怎么处理'\0‘的, 直接跳过?
      

  4.   

    没太明白你的意思,\0在java是个转义字符,你是要实现什么?
      

  5.   


    //不要被结束符忽悠
    void reverse(char *str) {//传入一个指向字符串的指针str
      char * end = str;//把指针str赋给指针end,于是2个指针指向同一个位置
      char tmp;//临时变量,你懂的
      if (str) {//如果指针存在
        while (*end) {//end指针指向的位置一直后移,直到指向结束符'\0'的下一个跳出while,只是end指向结束符'\0'
        ++end;
        }
        --end;//end指针前移一位,指向字符串最后一位
        while (str < end) {//当str指针在end指针之前的时候交换
          tmp = *str;//end和str指针指向的位置上的字符对换,换完之后str后移,end前移
          *str++ = *end;
          *end-- = tmp;
        }
      }
    }
    //换成java就是这样
    public class Test02 {
    public static void main(String[] args){
    String str = "abcdef";
    new Test02().reverse(str);
    }
    public String reverse(String str){
    return new StringBuilder(str).reverse().toString();
    }
    }