2013-02-03 74 views
1

我有這裏的例子代碼,我正在嘗試。重新聲明變量沒有連接

char test[256], test1[256]; 

char *combine =("Hello '%s', '%s'",test,test2); 

我該如何解析我的測試test1的值到我的char * combine中?對於我的測試和測試1,我得到了一個沒有鏈接重新聲明的錯誤。

+1

這不是C.也許你是受python的啓發? – bmargulies

回答

2

結賬sprintf。它可以讓你把兩個字符串結合起來。

所以,像這樣:

char combine[LARGE_ENOUGH_NUMBER_HERE] 
sprintf(combine, "Hello %s %s", test1, test2); 
+0

非常感謝。那正是我想要做的。 – user1823986

+0

小心接受答案?它的綠色複選標記在upvote按鈕下方:) –

+0

對不起。接受它。 – user1823986

0

聲明:

char *combine = ("Hello '%s', '%s'", test, test2); 

看起來並不像C在所有。如果要寫入格式化的字符串,則應該使用sprintf系列(來自標準標頭<stdio.h>)。您可以在整個Web上查看文檔。如果您使用C99,最好使用snprintf,這更安全。

// C99 

#include <stdio.h> 

char combine[1024]; /* Should be long enough to hold the string. */ 
snprintf (combine, sizeof combine, "Hello '%s', '%s'", test, test2); 
+0

非常感謝。我設法通過sprintf來實現我所需要的。 – user1823986