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

Sky*_*eSM 2 c printf concatenation command-line-arguments

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

如果我传递的价值,如 ./prog val1 val2 val3 val4

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

我怎样才能有效地使用snprintf()

Rob*_*obᵩ 6

#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);
}
Run Code Online (Sandbox Code Playgroud)