Is there a d analog of strncmp?
dan via Digitalmars-d-learn
digitalmars-d-learn at puremagic.com
Sun Aug 21 20:09:20 PDT 2016
On Monday, 22 August 2016 at 01:45:02 UTC, Jonathan M Davis wrote:
> On Monday, August 22, 2016 00:14:31 Adam D. Ruppe via
> Digitalmars-d-learn wrote:
>> int strncmp(string a, string b, int n) {
>> if(a.length > n)
>> a = a[0 .. n];
>> if(b.length > n)
>> b = b[0 .. n];
>> import std.algorithm.comparison : cmp;
>> return cmp(a, b);
>> }
>
> Aside from the imports, it can be turned into a one-liner if
> you use take:
>
> return cmp(take(a, n), take(b, n));
>
> - Jonathan M Davis
Thanks Adam and Jonathan for your solutions.
For reference, one of the imports Jonathan is referring to is
import std.range;
I did not know about take. Well, i also did not know about cmp.
So my code is probably not very idiomatic. But i do appreciate
all of you d-learn people!
More information about the Digitalmars-d-learn
mailing list