2017-07-13 10 views
-8

のJavaの同等物は何これは私は、Javaに私のコードを変換したいC.Cの*の文字

int test(unsigned char* input, unsigned char* output, int in_len) 
{ 
    int i, out_len = 0; 

    for(i = 0; i < in_len; i++) 
    { 
     if (*(input+i) == 0x23) 
     { 
      i++; 
      *output++ = *(input+i)^0x40; 
     } 
     else 
     { 
      *output++ = *(input+i); 
     } 
     out_len++; 
    } 
    return(out_len); 
} 

で私のコードです。

私はtest()メソッドを呼び出す前にbase64値を持っています。

デコードした後、私は

* charでtest()メソッドを呼び出していますが、Javaは何char*タイプを持っていません。

どのようにJavaを使用してこのコードを使用できますか?

ヘルプを私に....おかげで...

public static byte[] test(byte[] input, byte[] output, int in_len) 
{ 
    int i, out_len = 0; 

    for(i = 0; i < in_len; i++) 
    { 
     if ((input[i]) == 0x23) 

      i++; 
      output[i] = (byte) (input[i]^0x40); 
     } 
     else 
     { 
      output[i] = input[i]; 
     } 
     out_len++; 
    } 
    return(output); 
} 
+0

ありがとうございました^^ 私はどのように探求するのか分かりませんでした。 私は英語が上手ではないので... .haha ですので、私は自分でやります。 – peooooople

答えて

0

のJavaがchar持っていますが、それがないのポインタを持っているので、CHAR * []文字でなければなりません。 Javaのcharの他の違いは、2バイトの長さのCのwide-charとまったく同じです。 Cのcharと非常によく似ているjavaバイトを使用する方が良いですが、符号なしにはできません。Javaバイトは常に署名されていますが、使用する方法は関係ありません。

0

Java(char[])でcharの配列を使用できます。ただし、データはより大きなサイズになります(Javaでは1バイトあたり2バイト、Cでは1バイトあたり1バイト)。

入力をStringに変換する必要がある場合、共通の文字は1バイトとして格納されます。 詳細はこちらをご覧ください:Size of char in Java

それ以外の場合は、アプリケーションが正常であるようです。