私はunsigned charの長さを見つける方法について質問がありますか?Cを使ってunsigned charの長さを計算する方法は?
unsigned char tlv_buffer = "DF04024500DF0C03125050";
plsは誰もがそれは私を助けて知っている: は、ここで私のunsigned char型のですか?
私はunsigned charの長さを見つける方法について質問がありますか?Cを使ってunsigned charの長さを計算する方法は?
unsigned char tlv_buffer = "DF04024500DF0C03125050";
plsは誰もがそれは私を助けて知っている: は、ここで私のunsigned char型のですか?
#include <stdio.h>
#include <string.h>
int main(){
printf("Hello, World!\n");
unsigned char tlv_buffer[] = "DF0402df4500DF0C03125050";
int length = strlen(tlv_buffer);
printf("Length is %d \n", length);
return 0;
}
//テスト済みです。それはあなたが好きに初期化する必要があり
幸運を祈る。 – George
tlv_bufferはポインタである必要があります – staringlizard
@staringlizardポインタに崩壊するものである必要があります。 – George
仕事:
unsigned char *tlv_buffer = "DF04024500DF0C03125050"
を。
、次いでstrlen
int tlv_buffer_length = strlen((char*) tlv_buffer)
を使用して長さを計算します。
として、または@ M.Mコメントでそれを指す:
char tlv_buffer [] = "DF04024500DF0C03125050"
。
int tlv_buffer_length = strlen(tlv_buffer)
;
バッファタイプ(または 'char []')として単純な 'char *'を使用するコードを簡略化すると付け加えます。 –
char * tlv_buffer =(char *) "DF04024500DF0C03125050"; int tlv_buffer_length = strlen(tlv_buffer); – dreamcrash
キャストは必要ありません。 (コードマークアップのためにバックティックを使用する) –
初期設定が間違っています。 –
unsigned charのサイズは、言語定義によって1です。その長さは、8ビットの可変でない文字エンコーディングでも1になります(UTF8のようなものが部分文字になる可能性があり、UTF32で1つのunsigned charがちょうど1文字の1/4になります)。 – hyde
実際に@Georgeは制約違反です(C標準によるエラー) –