2013-02-03 117 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