c - 使用 snprintf 进行字符串连接

标签 c string

我正在使用 snprintf() 创建一个字符串:

snprintf(msgText, MAX_MSG_SIZE-1, "expr $((($(date +%s) - $(date +%s -r filename.txt)) / 86400))");

这旨在将 Linux 命令存储在 msgText 中。该命令将稍后执行并输出 filename.txt 的使用期限(以天为单位)。

这里的问题是:

这是错误的,因为 snprintf 期望 %s 有一个字符串参数。编译器报告此错误:

error: format ‘%s’ expects a matching ‘char *’ argument 

我应该做什么?

最佳答案

如果你想要 %s被替换,然后提供 const char* snprintf 的参数以及要写入的值。

如果你想要文字%smsgText ,然后转义 %%% ,或将该字符串作为单个参数传递给格式字符串 "%s" :

snprintf(msgText, MAX_MSG_SIZE-1, "%s", "$(date +%s) ...");

关于c - 使用 snprintf 进行字符串连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34048848/

相关文章:

c - 学习c 无法理解指针

string - QLineEdit日文/汉字𤭢不显示

python - 列表python中子列表中字符串的长度

javascript - 错误检查输入,Javascript

c - glClear 和 glStencilMask 未按预期运行

c - Linux 内核模块,防止 usbcore 在探测后注册另一个接口(interface)

c - 我无法删除字符串中的空格

c# - 使用定时器更新标签

java - 在Java中压缩/解压缩LZMA字符串

c - C语言战舰游戏的问题