【发布时间】:2013-09-23 06:03:50
【问题描述】:
我有一个 sprintf 命令,由于参数变量中的 %s 而崩溃。除了用 %% 转义参数字符串之外,建议的解决方法是什么。
char* s="abc%sabc";
char a[100];
sprintf(a,"The message is : %s",s);
任何帮助将不胜感激。
【问题讨论】:
-
有什么问题?上面的代码应该可以工作。
-
如果你只使用 c,你可以使用
strcat例如a[100]="The message is : ";strcat(a,"abc%sabc"); -
@mvp 这是一个非常了不起的错误,他们到底是怎么弄错的? BTW %s 格式不应该解释被替换的字符串,因为它是完全错误的,与安全无关。
-
@mvp 你能提供一些关于这个错误的参考吗?我的 Linux 发行版上的上述代码没有任何问题。
-
你能提供一个SSCCE吗?我的意思是一些可以证明问题的东西,但它是如此完整,以至于我们可以将它粘贴到一个文件中并构建并运行它。
标签: c++ c printf format-specifiers