sprintf函數的用法
2014-10-23 23:38 29013人閱讀 評論(0) 收藏 舉報

分類: 嵌入式系統(35)
版權聲明:本文為部落客原創文章,未經部落客允許不得轉載。
說明1:該函數包含在stdio.h的頭檔案中,使用時需要加入:#include <stdio.h>
說明 2:sprintf與printf函數的差別:二者 功能相似,但是 sprintf函數列印到字元串中,而printf函數列印輸出到螢幕上。 sprintf函數在我們完成其他資料類型轉換成字元串類型的操作中應用廣泛。 說明3:sprintf函數的格式: int sprintf( char *buffer, const char *format [, argument,...] );
除了前兩個參數固定外,可選參數可以是任意個。buffer是字元數組名;format是格式化字元串(像:"=%6.2f%#x%o",%與#合用時,自動在十六進制數前面加上0x)。隻要在printf中可以使用的格式化字元串,在sprintf都可以使用。其中的格式化字元串是此函數的精華。
說明4:可以控制精度 char str[20];
double f=14.309948;
sprintf(str,"%6.2f",f);
說明5:可以将多個數值資料連接配接起來。 char str[20]; int a=20984,b=48090;
sprintf(str,"=m",a,b);
str[]="20984 48090"
說明6:可以将多個字元串連接配接成字元串 char str[20];
char s1={'A','B','C'};
char s2={'T','Y','x'};
sprintf(str,"%.3s%.3s",s1,s2);
%m.n在字元串的輸出中,m表示寬度,字元串共占的列數;n表示實際的字元數。%m.n在浮點數中,m也表示寬度;n表示小數的位數。 說明7:可以動态指定,需要截取的字元數 char s1={'A','B','C'};
char s2={'T','Y','x'};
sprintf(str,"%.*s%.*s",2,s1,3,s2);
sprintf(s, "%*.*f", 10, 2, 3.1415926);
說明8:可以列印出i的位址: sprintf(s, "%p", &i); 相當于 sprintf(s, "%0*x", 2 * sizeof(void *), &i); 說明9:sprintf的傳回值是字元數組中字元的個數,即字元串的長度,不用在調用strlen(s)求字元串的長度