我在这里建立了一个基于4个参数的字符串,并用system()调用它,但是看起来有点乱。有没有更正确的方法,我应该做到这一点,而不是使用所有这些strcat和str1-4?建立字符串的方法c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(int argc, char *argv[])
{
char str1[40] = "sed -n 's/.*\\(";
char str2[] = "\\)\\(.*\\)\\(";
char str3[] = "\\).*/\\2/p' ";
char str4[] = " > ";
if (argc != 5)
{
fprintf (stderr, "Usage %s <LogFile> <token1> <token2> <DumpFile>\n",
argv[0]);
exit(EXIT_FAILURE);
}
strcat(str1, argv[2]);
strcat(str1, str2);
strcat(str1, argv[3]);
strcat(str1, str3);
strcat(str1, argv[1]);
strcat(str1, str4);
strcat(str1, argv[4]);
system(str1);
return 0;
}
你指的是哪个标准?它是C标准的当前版本(C2011)和以前版本(C99)的标准版本。唯一不符合标准的地方是微软在Timewarp中被卡住的Windows,并坚持认为只有C89是标准的,并且在下划线后面隐藏了最近的名字:'_snprintf()'等。 – 2012-01-30 19:55:25
@JonathanLeffler出于某种原因,它没有在C99中指定的想法。我明白了。真棒! – cnicutar 2012-01-30 19:56:36