在 C 中使用 snprintf 将所有 argv 值连接到一个字符串

标签 c concatenation command-line-arguments printf

如何使用 snprintf 将 argv 中的所有值连接到一个字符串?

如果我传入像这样的值./prog val1 val2 val3 val4

我的字符串 char all_values[MAX_LEN] 应该是“val1 val2 val3 val4

如何使用 snprintf() 高效地做到这一点?

最佳答案

#include <stdio.h>

#define MAX_LEN 16
int main(int ac, char **av) {
   char buffer[MAX_LEN];
   buffer[0] = 0;
   int offset = 0;
   while(av++,--ac) {
      int toWrite = MAX_LEN-offset;
      int written = snprintf(buffer+offset, toWrite, "%s ", *av);
      if(toWrite < written) {
          break;
      }
      offset += written;
   }
   printf("%s\n", buffer);
}

关于在 C 中使用 snprintf 将所有 argv 值连接到一个字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5796476/

相关文章:

C语言中函数指针的概念?

r - 提取R中两个逗号之间的单词

c++ - 在 C++ 中连接 char[] 和 uint32_t

c# - 转义 .NET 命令行参数的规范解决方案

c - 在 C 程序中读取命令行参数

c - 为什么我在这个程序中遇到段错误?

c - 如何按照其他代码在 Visual Studio C89 中声明可变长度数组

c - 内联汇编: Passing pointers to a function and using it in that function in assembly

javascript - 寻找随机选择、连接存储在变量中的文本字符串

C & bash 重定向进程通信