2 // EXECUTE_ARGS: runnable/wc2.d
6 extern(C
) int printf(const char*, ...);
8 int main (string
[] args
)
13 int[string
] dictionary
;
15 printf(" lines words bytes file\n");
16 foreach (string arg
; args
[1 .. args
.length
])
19 int w_cnt
, l_cnt
, c_cnt
;
23 input
= cast(string
)std
.file
.read(arg
);
25 for (int j
= 0; j
< input
.length
; j
++)
31 if (c
>= '0' && c
<= '9')
34 else if (c
>= 'a' && c
<= 'z' ||
45 { string word
= input
[wstart
.. j
];
53 { string w
= input
[wstart
.. input
.length
];
56 printf("%8lu%8lu%8lu %.*s\n", l_cnt
, w_cnt
, c_cnt
, arg
.length
, arg
.ptr
);
64 printf("--------------------------------------\n%8lu%8lu%8lu total",
65 l_total
, w_total
, c_total
);
68 printf("--------------------------------------\n");
69 foreach (string word1
; dictionary
.keys
)
71 printf("%3d %.*s\n", dictionary
[word1
], word1
.length
, word1
.ptr
);