unsigned char *をchar *に変換し、値を出力してからchar *をunsigned char *に変換します。どうやってやるの ?unsigned char *をcharに変換する方法*
0
A
答えて
0
unsigned char x = 0xFF;
unsigned char *p = &x;
printf("Signed value - %d\n", *((char *)p));
printf("Unsigned value - %u\n", *p);
しかし、可能であれば、そのようなキャスティングは避けるべきだと私はコメントしています。
+0
私はdownvoteの理由はありませんでした。説明できますか? – dkolmakov
2
バイト配列は、char
,unsigned char
またはsigned char
の配列として解釈できます。
Cライブラリのほとんどの文字列関数は、タイプchar *
またはconst char *
の引数をとり、そのようなポインタによって指される配列はNULL終止符(NULL文字定数として書かれた文字列'\0'
)。
unsigned char
の配列にNULL終止符が付いている限り、これらのライブラリ関数に渡すときは、そのアドレスを(char *)
または(const char *)
にキャストすることは無害です。例えば
:
#include <stdio.h>
#include <string.h>
int main(void) {
unsigned char buf[256];
char *p;
for (size_t i = 0; i < sizeof(buf); i++) {
buf[i] = (i + 1) & 255;
}
printf("length of array: %d\n", (int)strlen((char *)buf));
printf("complete character set: >>>%s<<<\n", (char *)buf);
p = (char *)buf;
printf("char type is %s by default\n", p[128] < 0 ? "signed" : "unsigned");
return 0;
}
関連する問題
- 1. unsigned char *をcのunsigned int *に変換する方法は?
- 2. unsigned charをNSStringに変換する
- 3. "unsigned char *"を "char *"(そして文字列)に変換する
- 4. QByteArrayからunsigned charに変換する*
- 5. Cの符号付きchar []をunsigned char []に変換します
- 6. win32のCプログラミングでchar *をunsigned intに変換する方法
- 7. unsigned charをjbyteArrayに変換する方法
- 8. unsigned char(配列)をunsigned int(配列)に変換する
- 9. EVP_DigestUpdateと「『CONSTのchar *』に 『* unsigned char型』から無効な変換」
- 10. const unsigned char *文字列またはconst char *への変換/ *
- 11. なぜunsigned char << unsigned charの結果がunsigned charではない
- 12. Cythonのchar **をconst char **に変換する方法は?
- 13. unsigned shortをchar *に効率的に変換する*
- 14. どのようにSystem :: Drawing :: Image ^をunsigned charに変換する
- 15. unsigned char comparision
- 16. OpenCLの署名付き文字をunsigned charに変換する方法は?
- 17. C++のstd :: vectorをstd :: vector <unsigned char>に変換する
- 18. unsigned char配列をbase64文字列に変換する
- 19. iphoneアプリケーションのNSStringをunsigned char *に変換する
- 20. unsigned char *をjsonに変換する、jsonspp C++
- 21. char *をcharに変換する
- 22. C charをchar *に変換する
- 23. const char *からcharに変換する方法*
- 24. Uint8をunsigned charのRGB値に変換します
- 25. AVPictureを配列に変換します。<unsigned char>
- 26. System :: Byteのギザギザの配列をunsigned char **に変換します。
- 27. Marshal unsigned char ** in c#
- 28. char **をchar *またはcharに変換する
- 29. Arduino: `I2CRW :: readByte(unsigned char、unsigned char) 'への未定義の参照。
- 30. char-date-charの変換
強制改宗はC.にキャストすることによって行われます。しかし、キャストは絶対に必要でない限り避けるべきです。なぜあなたはこれをする必要がありますか?あなたの質問はより多くの文脈を提供するはずです。 – user694733