STM32學習筆記3——怎樣將整型變數轉換為字元變數 然後串列埠 或者LCD傳送出來(STM32) 以及sprintf的用法
可使用:printf("%d",b);
或者將上面個的輸出改成
USART_SendData(USART1,c[i]+0x30); 即可
還可以將資料變數改變成字串
sprintf 的用法
為了更加的熟悉字串操作的函式,所以把相應的函式積累如下:
(1)sprintf()函式:把格式化的資料寫入某個字串
sprintf函式現在用的最多的就是用來各種型別轉換成字串的應用。
標頭檔案:stdio.h
函式原型:int sprintf( char *buffer, const char *format, [ argument] … ) ;
返回值:字串長度(strlen)
除了前兩個引數型別固定外,後面可以接任意多個引數。而它的精華,顯然就在第二個引數:
在格式化字串上,printf 和sprintf 都使用格式化字串來指定串的格式,在格式串內部使用一些以“%”開頭的格式說明符(format specifications)來佔據一個位置,在後邊的變參列表中提供相應的變數,最終函式就會用相應位置的變數來替代那個說明符,產生一個呼叫者想要的字串。
sprintf 最常見的應用之一莫過於把整數列印到字串中,所以,sprintf 在大多數場合可以替代itoa
//把整數123 列印成一個字串儲存在s 中。
sprintf(s, "%d", 123); //產生"123"
可以指定寬度,不足的左邊補空格:
sprintf(s, "��", 123, 4567); //產生:" 123 4567"
當然也可以左對齊:
sprintf(s, "%-8d�", 123, 4567); //產生:"123 4567"
也可以按照16 進位制列印:
sprintf(s, "%8x", 4567); //小寫16 進位制,寬度佔8 個位置,右對齊
sprintf(s, "%-8X", 4568); //大寫16 進位制,寬度佔8 個位置,左對齊
這樣,一個整數的16 進位制字串就很容易得到,但我們在列印16 進位制內容時,通常想要一種左邊補0 的等寬格式,那該怎麼做呢?很簡單,在表示寬度的數字前面加個0 就可以了。
(2)strlen()獲取字元陣列或者是字串的長度的函式
這個函式比較的簡單,主要的作用是獲取陣列或者是字串的長度。
(3)strncat()函式:拼接兩個字串的函式
原型:extern char *strncat(char *dest,char *src,int n);
用法:#include <string.h>
功能:把src所指字串的前n個字元新增到dest結尾處(覆蓋dest結尾處的'')並新增''。
說明:src和dest所指記憶體區域不可以重疊且dest必須有足夠的空間來容納src的字串。
返回指向dest的指標。www.2cto.com
(4)strcat()函式:作用也是拼接兩個字串
函式原型:extern char *strcat(char *dest,char *src);
用法:#include <string.h>
功能:把src所指字串新增到dest結尾處(覆蓋dest結尾處的'')並新增''。
說明:src和dest所指記憶體區域不可以重疊且dest必須有足夠的空間來容納src的字串。
返回指向dest的指標。
作者:liangxanhai