我在這裏建立了一個基於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