c語言sprintf
⑴ 關於C語言sprintf函數
本函數與printf()基本一致,但輸出結果寫入字元串中 例:將"test 1 2"寫入數組s中 #include int main(void) { char s[40]; sprintf(s,"%s%d%c","test",1,'2'); /*第一個參數就是指向要寫入的那個字元串的指針,剩下的就和printf()一樣了 你可以比較一下,這是向屏幕輸入 printf("%s%d%c","test",1,'2'); */ return 0; }
⑵ C語言中sprintf這個函數怎麼來用
sprintf和printf的用法類似,它用於格式化輸出到特定的存儲地
char
a[10];
sprintf(a,"%s","Hello
World");
上面就是把Hello
World存入a字元數組中
⑶ C語言sprintf怎麼使用
sprintf函數的功能是把格式化的數據寫入某個字元串緩沖區。
int sprintf( char *buffer, const char *format, [ argument] … );
buffer:char型指針,指向將要寫入的字元串的緩沖區。
format:格式化字元串。
[argument]...:可選參數,可以是任何類型的數據。
示例
intmain()
{
charbuffer[50];//大小50的char字元數組
intn,a=5,b=3;//
n=sprintf(buffer,"%d+%d=%d",a,b,a+b);//把a,b,a+b以第二個參數的形式寫入buffer
printf("[%s]isastring%dcharslong ",buffer,n);/*「格式輸出函數」*/
return0;
}
輸出結果[5 + 3 = 8] is a string 13 chars long
sprintf格式的規格如下所示。[]中的部分是可選的。
%[指定參數][標識符][寬度][.精度]指示符
若想輸出'%'本身時, 請使用'%%'處理。
1. 處理字元方向。負號時表示從後向前處理。
2. 填空字元。 0 的話表示空格填 0;空格是內定值,表示空格就放著。
3.字元總寬度。為最小寬度。
4. 精確度。指在小數點後的浮點數位數。
轉換字元
%% 印出百分比符號,不轉換。
%c 整數轉成對應的 ASCII 字元。
%d 整數轉成十進位。
%f 倍精確度數字轉成浮點數。
%o 整數轉成八進位。
%s 整數轉成字元串。
%x 整數轉成小寫十六進位。
%X 整數轉成大寫十六進位。
⑷ sprintf()函數的用法
sprintf 是個變參函數,定義如下:
int sprintf( char *buffer, const char *format [, argument] ... );
除了前兩個參數類型固定外,後面可以接任意多個參數。而它的精華,顯然就在第二個參數:格式化字元串上。
printf 和sprintf 都使用格式化字元串來指定串的格式,在格式串內部使用一些以「%」開頭的格式說明符(format specifications)來占據一個位置,在後邊的變參列表中提供相應的變數,最終
函數就會用相應位置的變數來替代那個說明符,產生一個調用者想要的字元串。
sprintf的第一個參數是目的字元串
sprintf指的是字元串格式化命令,函數聲明為 int sprintf(char *string, char *format [,argument,...]);,主要功能是把格式化的數據寫入某個字元串中,即發送格式化輸出到 string 所指向的字元串。
使用sprintf 對於寫入buffer的字元數是沒有限制的,這就存在了buffer溢出的可能性。解決這個問題,可以考慮使用snprintf函數,該函數可對寫入字元數做出限制。
⑸ C語言sprintf
首先,printf("xxx %d",n);意思是把 「」裡面的值輸出到屏蔽中,
然後, sprintf(s,"xxx %d",n); 就是把 「」裡面的值輸出到s中。
對應的還有sscanf;
scanf("%d",&n); 意思就是從鍵盤接受數據存入n,
sscanf(s,"%d",&n); 意思就是從s中接受數據存入n。
⑹ C語言sprintf怎麼使用
可以這么考慮!函數功能:把格式化的數據寫入某個字元串
頭文件:stdio.h函數原型:intsprintf(char*buffer,constchar*format,[argument]…);參數列表:buffer:char型指針,指向欲寫入的字元串地址。
format:char型指針,指向的內存裡面存放了格式字元串。
[argument]...:可選參數,可以是任何類型的數據。
返回值:字元串長度(strlen)
相關函數:intsprintf_s(char*buffer,size_tsizeOfBuffer,constchar*format,[argument]...);
int_sprintf_s_l(char*buffer,size_tsizeOfBuffer,constchar*format,locale_tlocale,[argument]...);
intswprintf_s(wchar_t*buffer,size_tsizeOfBuffer,constwchar_t*format,[argument]...);
int_swprintf_s_l(wchar_t*buffer,size_tsizeOfBuffer,constwchar_t*format,locale_tlocale,[argument]…);
template
intsprintf_s(char(&buffer)[size],constchar*format,[argument]...);//僅存在於C++
template
intswprintf_s(wchar_t(&buffer)[size],constwchar_t*format,[argument]...);//僅存在於C++
編輯本段參數說明及應用舉例sprintf格式的規格如下所示。[]中的部分是可選的。
%[指定參數][標識符][寬度][.精度]指示符
若想輸出`%'本身時,請這樣`%%'處理。
1.處理字元方向。負號時表示從後向前處理。
2.填空字元。0的話表示空格填0;空格是內定值,表示空格就放著。
3.字元總寬度。為最小寬度。
4.精確度。指在小數點後的浮點數位數。
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
轉換字元=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
%%印出百分比符號,不轉換。
%c整數轉成對應的ASCII字元。
%d整數轉成十進位。
%f倍精確度數字轉成浮點數。
%o整數轉成八進位。
%s整數轉成字元串。
%x整數轉成小寫十六進位。
%X整數轉成大寫十六進位。
⑺ C語言,sprintf函數
通常是用來按照一定的格式,給字元竄賦值的,
像char
buf[100]
=
{0};
char
s1[10]
=
"hello
world";
char
s2[10]
=
"Tom";
sprintf(buf,"zifuchuan
is
%s,he
int
%s",,s1,s2);
printf("buf
=
[%s]",buf);//輸出是,也就是buf變成"zifuchuan
is
helloworld
,he
int
Tom"
同樣適合一些
int
類型,
int
int1=
10
像sprintf(buf,"%s,%s,%d",s1,s2,int1);
這樣得出的字元串是"hellowolrd
Tom
10"
這樣可以么?