我有一個問題,如何找到unsigned char的長度? 這裏是我的無符號的字符:如何使用C計算無符號字符的長度?
unsigned char tlv_buffer = "DF04024500DF0C03125050";
請每個人都知道幫助我嗎?
我有一個問題,如何找到unsigned char的長度? 這裏是我的無符號的字符:如何使用C計算無符號字符的長度?
unsigned char tlv_buffer = "DF04024500DF0C03125050";
請每個人都知道幫助我嗎?
#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;
}
//剛測試過。它的工作
你應該像初始化:
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
不需要強制轉換。 (使用反引號代碼標記) –
你的初始化是錯誤的。 –
通過語言定義,無符號字符的大小是1。它的長度在任何8位非變量字符編碼上也是1(與UTF8類似,它可以是部分字符,而對於UTF32,一個無符號字符恰好是單個字符的四分之一) – hyde
@George實際上這是違反約束(由C標準錯誤) –