c/c++ 如何在字符串里面加入变量?

就比如说我现在有个s[3]="**",然后我声明char *t="a s[2] b“,使得t指向的位置为字符串"a * b"?

先声明一个足够大空间的数组t,如:char t[10];

然后使用sprintf() 函数将一个字符串格式化输出到t数组中,

如:sprintf(t, "a %c b", s[2]);

这样t既是a * b

如果你用MFC,可以用CString的Format

http://www.cnblogs.com/mazhenyu/archive/2013/02/20/2918898.html

CString str;
char s[] = "*";

str.Format("a %s b", s);

如果你不用MFC,也可以自己拼接,用strcat

http://baike.baidu.com/link?url=AugI9RxBoWxAoufgfYNG8PirUpC5WQOXQhkRVaKdyc2uqNfg9Gq2jAmvN5Pbv7uZTfKZSrXEl-MVEB5CueKaJa

CString Format或者Mid Left Right拼接字符v串

用sprinf,sprinf("a %c b")

c/c++ 是不支持这样的定义的,不知道最新的 c/c++ 标准中有没有新增加这样的定义。
但对于字符串的定义来说,定义中是无法包含其它变量的。只有后续的字符串处理函数,才能完成这样的要求。

推荐snprintf,sprintf存隐患