sprintf函數是C語言中一個常用的格式化輸出函數,用于將數據按照指定的格式轉換為字符串,并存儲在字符數組中。
該函數的聲明如下:
int sprintf(char *str, const char *format, ...);
其中,str是存儲結果的字符數組,format是格式化字符串,…是可變參數列表。
sprintf函數的用法如下:
int num = 10;
char str[10];
sprintf(str, "%d", num);
printf("str: %s\n", str); // 輸出:str: 10
在這個例子中,將整數變量num轉換為字符串,并存儲在字符數組str中。
int num1 = 10;
int num2 = 20;
char str[20];
sprintf(str, "num1: %d, num2: %d", num1, num2);
printf("%s\n", str); // 輸出:num1: 10, num2: 20
在這個例子中,使用格式化字符串將多個變量num1和num2轉換為字符串,并存儲在字符數組str中。
float num = 3.14;
char str[10];
sprintf(str, "%.2f", num);
printf("str: %s\n", str); // 輸出:str: 3.14
在這個例子中,將浮點數變量num轉換為字符串,并保留2位小數,結果存儲在字符數組str中。
需要注意的是,sprintf函數存在緩沖區溢出的風險,所以在使用時要確保目標字符數組足夠大,避免數據溢出。另外,sprintf函數返回成功轉換并存儲的字符數,如果存儲失敗則返回負數。