unsigned char配列をCの文字列に変換するにはどうすればよいですか?

Stavros_S

このような配列がある場合

unsigned char data[2850] = "";

プログラムの一部を実行した後、最終的にはバイト要素でいっぱいになるため、ループしてログアウトすると、次のように表示されます。

    for (size_t i= 0; i < sizeof(data); i++) {
        printf("%02X ", data[i]);
    }

    //log window shows 01 24 81 00 0E 1C 44 etc...

データ配列のすべての要素を取得してconstcharに入れる方法はありますか?それとも1つの大きな文字列ですか?うまくいけば、私は十分に明確になっています。私の目標は、最終的にこのデータ配列のすべての要素を、プログラム内の他の場所で使用できるbase64でエンコードされた文字列に変換することです。

マイク

Cの文字列(文字列)を、連番の配列であるcharsentianal文字(ヌルターミネータ:によって終了S '\0'

これは、配列のどこかに値0x00のバイトがある場合、シーケンスが終了する前に「文字列」を終了する可能性があることを意味します。あなたの例では、data配列を文字列に変換した場合、その終わりが最初の要素になります。

data[]{00, EB, 23, EC, FF, etc... };

ここにあるデータの値から文字列を作成する場合は、次のように使用できますsprintf()

unsigned char val = 00;
data[0] = val;
char dump[5] = {0};

sprintf(dump, "%02x", data[0]);

これで、値が「00」の文字列ができました。次のようなものを使用して、文字列をより魅力的にすることができます。

sprintf(dump, "0x%02x", data[0]);

そのため、16進データとして表示するための「0x00」があります。

このようなものをループして完全な文字列を与えることができます...しかし、印刷可能な文字列は少なくともデータ文字列のサイズの2x + 1(ASCIIの場合は2x、nullの場合は+1)である必要があることに注意してください。新しい文字列を段階的に入力します。例:

unsigned char data[5] = {0x00, 0x12, 0xB3, 0xFF, 0xF0};
char printstr[11] = {00};

for(int x = 0; x < 5; x++)
    sprintf(printstr+(x*2), "%02x", data[x]);
printstr[10] = '\0';

printstr持っています"0012b3fff0"

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

unsigned char *配列からjpeg画像配列を取得するにはどうすればよいですか?

分類Dev

memoryviewのスライスをC文字列(unsigned char *)にキャストするにはどうすればよいですか?

分類Dev

Cで範囲を維持しながら、unsignedをsigned charに(およびその逆に)変換するにはどうすればよいですか?

分類Dev

`unsigned char`の配列の値を16進数でフォーマットするにはどうすればよいですか?

分類Dev

unsigned charのすべてのビットの値を取得するにはどうすればよいですか?

分類Dev

配列のように扱われる場合、C ++はunsigned charへのポインターをどのように見ますか?

分類Dev

C ++:文字列ベクトル要素をunsigned charに変換する方法は?

分類Dev

ヌル終了文字を含む C の unsigned char 配列を Objective-C NSString に変換する

分類Dev

unsigned char 配列の配列を c に格納する

分類Dev

元のビットパターンを保持しながら、(int)を(unsigned int)に変換するにはどうすればよいですか?

分類Dev

Cで16進文字列をunsigned charに変換する方法がわかりませんか?

分類Dev

unsigned char配列をuint8_t配列に変換しますか?

分類Dev

unsigned longの数字を逆にするにはどうすればよいですか?

分類Dev

C:文字列をunsigned longlongに変換するエラー

分類Dev

unsigned char *をhexstringに変換する

分類Dev

ファイルから16進数を読み取り、unsigned charに格納するにはどうすればよいですか?

分類Dev

C ++ unsigned char *をC#に変換する方法は?

分類Dev

C ++で文字列内の文字のサイズを使用して文字列をChar配列に変換するにはどうすればよいですか?

分類Dev

unsigned charを文字列に変換すると、バッファのサイズが変わります

分類Dev

char *をconstchar *に暗黙的に変換できるのに、unsigned char *は変換できないのはなぜですか

分類Dev

C11では、文字列リテラルはchar []、unsigned char []、char *、およびunsigned char *です。

分類Dev

文字列の配列をIntの配列に変換するにはどうすればよいですか?

分類Dev

「配列形式の文字列」をPHPの配列に変換するにはどうすればよいですか?

分類Dev

Int配列を文字列に変換するにはどうすればよいですか?Swiftの配列

分類Dev

C const unsigned char [] []の配列

分類Dev

「intが元の型のすべての値を保持できる場合、値はintに変換され、そうでない場合はunsigned intに変換されます」-それはどういう意味ですか?

分類Dev

Javaで文字列を文字の配列に変換するにはどうすればよいですか

分類Dev

(文字列への変換の有無にかかわらず)char配列から文字を適切に削除するにはどうすればよいですか?

分類Dev

NumPy配列の文字列表現をNumPy配列に変換するにはどうすればよいですか?

Related 関連記事

  1. 1

    unsigned char *配列からjpeg画像配列を取得するにはどうすればよいですか?

  2. 2

    memoryviewのスライスをC文字列(unsigned char *)にキャストするにはどうすればよいですか?

  3. 3

    Cで範囲を維持しながら、unsignedをsigned charに(およびその逆に)変換するにはどうすればよいですか?

  4. 4

    `unsigned char`の配列の値を16進数でフォーマットするにはどうすればよいですか?

  5. 5

    unsigned charのすべてのビットの値を取得するにはどうすればよいですか?

  6. 6

    配列のように扱われる場合、C ++はunsigned charへのポインターをどのように見ますか?

  7. 7

    C ++:文字列ベクトル要素をunsigned charに変換する方法は?

  8. 8

    ヌル終了文字を含む C の unsigned char 配列を Objective-C NSString に変換する

  9. 9

    unsigned char 配列の配列を c に格納する

  10. 10

    元のビットパターンを保持しながら、(int)を(unsigned int)に変換するにはどうすればよいですか?

  11. 11

    Cで16進文字列をunsigned charに変換する方法がわかりませんか?

  12. 12

    unsigned char配列をuint8_t配列に変換しますか?

  13. 13

    unsigned longの数字を逆にするにはどうすればよいですか?

  14. 14

    C:文字列をunsigned longlongに変換するエラー

  15. 15

    unsigned char *をhexstringに変換する

  16. 16

    ファイルから16進数を読み取り、unsigned charに格納するにはどうすればよいですか?

  17. 17

    C ++ unsigned char *をC#に変換する方法は?

  18. 18

    C ++で文字列内の文字のサイズを使用して文字列をChar配列に変換するにはどうすればよいですか?

  19. 19

    unsigned charを文字列に変換すると、バッファのサイズが変わります

  20. 20

    char *をconstchar *に暗黙的に変換できるのに、unsigned char *は変換できないのはなぜですか

  21. 21

    C11では、文字列リテラルはchar []、unsigned char []、char *、およびunsigned char *です。

  22. 22

    文字列の配列をIntの配列に変換するにはどうすればよいですか?

  23. 23

    「配列形式の文字列」をPHPの配列に変換するにはどうすればよいですか?

  24. 24

    Int配列を文字列に変換するにはどうすればよいですか?Swiftの配列

  25. 25

    C const unsigned char [] []の配列

  26. 26

    「intが元の型のすべての値を保持できる場合、値はintに変換され、そうでない場合はunsigned intに変換されます」-それはどういう意味ですか?

  27. 27

    Javaで文字列を文字の配列に変換するにはどうすればよいですか

  28. 28

    (文字列への変換の有無にかかわらず)char配列から文字を適切に削除するにはどうすればよいですか?

  29. 29

    NumPy配列の文字列表現をNumPy配列に変換するにはどうすればよいですか?

ホットタグ

アーカイブ