簡體   English   中英

這是將整數轉換為c中的char數組的好方法嗎?

[英]Is this a good procedure to convert integer to char array in c?

我正在使用以下代碼將整數(12位)轉換為char數組:

static char my_num_char[SERIAL_BUFFER_SIZE]="";
static uint16_t my_counterB = 0;

my_num_char[0] = ( my_counterB / 1000) + 48;
my_num_char[1] = ( ( my_counterB - ( my_counterB / 1000 ) * 1000 ) / 100) + 48;
my_num_char[2] = ( ( my_counterB - ( my_counterB / 100 ) * 100 ) / 10) + 48;
my_num_char[3] = ( my_counterB % 10) + 48;
my_num_char[4] = '\n';

是執行此操作的好方法還是其他更有效的方法? 我之所以使用這種方式,是因為我想並排打包幾個整數並通過串行發送。 我使用sscanf從字節流中檢索整數。

使用函數可以為您完成此任務,例如snprintf()

例:

char my_num_char[SERIAL_BUFFER_SIZE];
int value = 747;
snprintf(my_num_char, SERIAL_BUFFER_SIZE, "%d", value);

這與效率無關,而與代碼清潔度有關。

如果您知道緩沖區中有足夠的空間,則可以執行以下操作:

pos=0;
sprintf(my_num_char+pos, "%04d\n", my_counterB);
pos += 5;
sprintf(my_num_char+pos, "%04d\n", my_counterZ);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM