-1

sort -n +1 -2 -o /tmp/ord_id在使用系统调用的 C 文件中有一个命令,这非常糟糕。我将如何创建一个快速排序函数来完成与 unix 命令相同的任务?以下是该命令的调用方式:

static const char sortcmd[] = "sort -n +1 -2 -o /tmp/ord_id "; //dec during function
//later in the function
bu_vls_strcpy(&cmd, sortcmd); //ONLY NEED TO FIX THIS COMMAND
bu_vls_strcat(&cmd, argv[1]);
bu_vls_printf(&gedp->ged_result_str, "%V\n", &cmd);
(void)system( bu_vls_addr(&cmd) );

bu_vls 函数是在程序中预定义的,因此可以将它们视为通常的字符串函数。我评论了调用出现的代码行,感谢任何提示或代码(这不是家庭作业,独立项目!)

4

1 回答 1

2

有几个步骤:

  1. 读入文件(假设是argv[1]
  2. (可选)解析它以+1 -2使用与排序相同的规则来查找选择的字段。
  3. 编写一个排序谓词来实现对数字(来自-n)参数的数字排序。这可以在整行上运行(如果您跳过了第 2 步)或在您创建来表示已解析行的结构上运行。
  4. 称呼qsort
  5. 按排序顺序写出数据。
于 2012-11-27T18:56:31.037 回答