Thread overview
How to compare strings against static char arrays?
Apr 27, 2011
Andrej Mitrovic
Apr 27, 2011
Nick Sabalausky
Apr 27, 2011
Andrej Mitrovic
Apr 27, 2011
Nick Sabalausky
Apr 27, 2011
Jonathan M Davis
Apr 27, 2011
Nick Sabalausky
April 27, 2011
E.g.:

void main()
{
    char[10] blue = "blue      ";
    assert(blue == "blue");
}

Obviously these two are different, but what function can I use to compare strings in situations where whitespace is the delimiter?
April 27, 2011
"Andrej Mitrovic" <none@none.none> wrote in message news:ip7phj$28v5$1@digitalmars.com...
> E.g.:
>
> void main()
> {
>    char[10] blue = "blue      ";
>    assert(blue == "blue");
> }
>
> Obviously these two are different, but what function can I use to compare strings in situations where whitespace is the delimiter?

assert(strip(blue) == "blue");

Is that what you need or did I misunderstand?


April 27, 2011
Nick Sabalausky Wrote:

> "Andrej Mitrovic" <none@none.none> wrote in message news:ip7phj$28v5$1@digitalmars.com...
> > E.g.:
> >
> > void main()
> > {
> >    char[10] blue = "blue      ";
> >    assert(blue == "blue");
> > }
> >
> > Obviously these two are different, but what function can I use to compare strings in situations where whitespace is the delimiter?
> 
> assert(strip(blue) == "blue");
> 
> Is that what you need or did I misunderstand?
> 
> 

Yup. blue[].strip (slice is needed).

And here I was desperately trying to find the trim() function. Thanks!
April 27, 2011
"Andrej Mitrovic" <none@none.none> wrote in message news:ip7pqt$29hc$1@digitalmars.com...
> Nick Sabalausky Wrote:
>
>> "Andrej Mitrovic" <none@none.none> wrote in message news:ip7phj$28v5$1@digitalmars.com...
>> > E.g.:
>> >
>> > void main()
>> > {
>> >    char[10] blue = "blue      ";
>> >    assert(blue == "blue");
>> > }
>> >
>> > Obviously these two are different, but what function can I use to
>> > compare
>> > strings in situations where whitespace is the delimiter?
>>
>> assert(strip(blue) == "blue");
>>
>> Is that what you need or did I misunderstand?
>>
>>
>
> Yup. blue[].strip (slice is needed).
>
> And here I was desperately trying to find the trim() function. Thanks!

Yea, I keep trying to do trim(), too. Hard habit to break :)



April 27, 2011
> "Andrej Mitrovic" <none@none.none> wrote in message news:ip7pqt$29hc$1@digitalmars.com...
> 
> > Nick Sabalausky Wrote:
> >> "Andrej Mitrovic" <none@none.none> wrote in message news:ip7phj$28v5$1@digitalmars.com...
> >> 
> >> > E.g.:
> >> > 
> >> > void main()
> >> > {
> >> > 
> >> >    char[10] blue = "blue      ";
> >> >    assert(blue == "blue");
> >> > 
> >> > }
> >> > 
> >> > Obviously these two are different, but what function can I use to
> >> > compare
> >> > strings in situations where whitespace is the delimiter?
> >> 
> >> assert(strip(blue) == "blue");
> >> 
> >> Is that what you need or did I misunderstand?
> > 
> > Yup. blue[].strip (slice is needed).
> > 
> > And here I was desperately trying to find the trim() function. Thanks!
> 
> Yea, I keep trying to do trim(), too. Hard habit to break :)

That's one of those functions that is quite common among many languages but is often not called quite the same thing. So, if you're used to a particular name, and the language chose another, then you're constantly thrown off by it until you use it enough that it sticks. But if they'd picked the name that you're used to, then someone else would have been constantly thrown off instead, since they were used to languages/libraries that used the first name. So, you can't really win.

- Jonathan M Davis
April 27, 2011
"Jonathan M Davis" <jmdavisProg@gmx.com> wrote in message news:mailman.3694.1303869505.4748.digitalmars-d-learn@puremagic.com...
>> "Andrej Mitrovic" <none@none.none> wrote in message news:ip7pqt$29hc$1@digitalmars.com...
>>
>> > Nick Sabalausky Wrote:
>> >> "Andrej Mitrovic" <none@none.none> wrote in message news:ip7phj$28v5$1@digitalmars.com...
>> >>
>> >> > E.g.:
>> >> >
>> >> > void main()
>> >> > {
>> >> >
>> >> >    char[10] blue = "blue      ";
>> >> >    assert(blue == "blue");
>> >> >
>> >> > }
>> >> >
>> >> > Obviously these two are different, but what function can I use to
>> >> > compare
>> >> > strings in situations where whitespace is the delimiter?
>> >>
>> >> assert(strip(blue) == "blue");
>> >>
>> >> Is that what you need or did I misunderstand?
>> >
>> > Yup. blue[].strip (slice is needed).
>> >
>> > And here I was desperately trying to find the trim() function. Thanks!
>>
>> Yea, I keep trying to do trim(), too. Hard habit to break :)
>
> That's one of those functions that is quite common among many languages
> but is
> often not called quite the same thing. So, if you're used to a particular
> name, and the language chose another, then you're constantly thrown off by
> it
> until you use it enough that it sticks. But if they'd picked the name that
> you're used to, then someone else would have been constantly thrown off
> instead, since they were used to languages/libraries that used the first
> name.
> So, you can't really win.
>

Yup, absolutely. For me, until about a year ago, I had spent a lot of time with Tango, which uses "trim", and I do a lot of work in Haxe which IIRC also uses "trim", so that's why my brain still keeps reaching for "trim".