basename.c
资源名称:c.rar [点击查看]
上传用户:shmaik
上传日期:2014-06-01
资源大小:45093k
文件大小:1k
源码类别:

VC书籍

开发平台:

C/C++

  1. #include <stdlib.h>
  2. #include "fmt.h"
  3. #include "str.h"
  4. char *dirname(char *path, int i, int j) {
  5. if ((j = Str_rchr(path, i, j, '/')) > 0)
  6. return Str_dup(path, i, j + 1, 1);
  7. else
  8. return Str_dup("./", 1, 0, 1);
  9. }
  10. char *basename(char *path, int i, int j, char *suffix) {
  11. i = Str_rchr(path, i, j, '/');
  12. j = Str_rmatch(path, i + 1, 0, suffix);
  13. return Str_dup(path, i + 1, j, 1);
  14. }
  15. int main(int argc, char *argv[]) {
  16. int i;
  17. if (Str_find(argv[0], 1, 0, "dirname") > 0)
  18. for (i = 1; i < argc; i += 2)
  19. Fmt_print("%sn", dirname(argv[i], 1, 0));
  20. else
  21. for (i = 1; i < argc; i += 2)
  22. Fmt_print("%sn", basename(argv[i], 1, 0, i+1 < argc ? argv[i+1] : ""));
  23. return EXIT_SUCCESS;
  24. }