2013-03-02 137 views
0

我有一個問題,我需要發送一些數據到套接字,數據存儲在一個字符變量(讓我們稱之爲變量A),但這些數據中的一些東西正在改變,是否可以在這個變量中插入另一個變量(變量B),並通過變量B所做的修改發送變量A?C編程變量在其他變量

變量B:

char B[] = "inserted by the user" 

變量A:

char A[] = "soemthing '%Variable B' something else" 
+0

我不知道你想做什麼。你看過'snprintf'嗎? – 2013-03-02 02:42:10

+0

正如's * printf'?或者你的意思是它應該隨變量自動改變? – Ryan 2013-03-02 02:42:36

回答

2

嘗試

char * A = malloc(strlen(B) + 40); /* You can tot up the additional bit here for 
            the rest of A including the null */ 
sprintf(A, "something '%s' something else", B); 
+2

使用snprintf plz – djechlin 2013-03-02 02:51:41

+2

爲什麼要在何時可以計算空間量方面加以限制。 – 2013-03-02 02:56:04

+1

未來的維護者決定添加一個更長的短語,但不知道要改變'malloc'語句。現在你有UB,這也是你手上的一個安全漏洞。 'snprintf'應該總是首選。 – djechlin 2013-03-02 03:01:17