2010-12-05 51 views
2

是否有一個標準C函數允許您使用格式說明符來構建字符串?使用格式說明符在C中創建一個字符串

現在我這樣做:

char buffer[256]; 
char *name = "Fred"; 
strcpy(buffer, "Hello, "); 
strcat(buffer, name); 
strcat(buffer, ". How are you today?\n"); 

有沒有一種方法來添加一個功能來緩衝消息?

事情是這樣的:使用它的時候,因爲sprintf的是不是一個安全功能,可以從buffer overflows遭受

makestr(buffer, "Hello, %s. How are you today?\n", name); 

回答

8

sprintf

要小心。

+1

我會upvote這個答案不是爲了荒謬的爭論,sprintf是不安全的。如果你知道自己在做什麼,並且不知道自己在做什麼的人可能應該使用BASIC而不是C,那麼這非常安全: – paxdiablo 2010-12-05 08:44:21

1

sprintf對您有幫助嗎?鏈接: sprintf