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()?
#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)