Groups | Search | Server Info | Login | Register


Groups > comp.lang.c > #397493

Re: Small challenge: sort names

From cross@spitfire.i.gajendra.net (Dan Cross)
Newsgroups comp.lang.c
Subject Re: Small challenge: sort names
Date 2026-04-11 19:59 +0000
Organization PANIX Public Access Internet and UNIX, NYC
Message-ID <10re97b$4pb$2@reader1.panix.com> (permalink)
References <10r4h6o$396qn$1@dont-email.me> <20260409025901.00002bc6@yahoo.com> <10r8fr5$37g$1@reader1.panix.com> <86eckla45k.fsf@linuxsc.com>

Show all headers | View raw


In article <86eckla45k.fsf@linuxsc.com>,
Tim Rentsch  <tr.17687@z991.linuxsc.com> wrote:
>cross@spitfire.i.gajendra.net (Dan Cross) writes:
>
>> In article <20260409025901.00002bc6@yahoo.com>,
>> Michael S  <already5chosen@yahoo.com> wrote:
>>
>>> On Wed, 08 Apr 2026 23:35:35 GMT
>>> scott@slp53.sl.home (Scott Lurndal) wrote:
>>>
>>>> Michael S <already5chosen@yahoo.com> writes:
>>>>
>>>>> On Wed, 08 Apr 2026 21:04:56 GMT
>>>>> scott@slp53.sl.home (Scott Lurndal) wrote:
>>>>>
>>>>>>> [snip]
>>>>>>
>>>>>> Idiomatically, I might have written
>>>>>>
>>>>>>    size_t
>>>>>>    countchar(const char *str, char match)
>>>>>>    {
>>>>>>        size_t count = 0u;
>>>>>>        for(; *str != '\0'; str++) count += (*str == match);
>>>>>>        return count;
>>>>>>    }
>>>>>
>>>>> I'd change it to
>>>>>
>>>>>   size_t
>>>>>   countchar(const char *str, char match)
>>>>>   {
>>>>>       size_t count = 0;
>>>>>       for(; *str != 0; str++) count += (*str == match);
>>>>>       return count;
>>>>>   }
>>>>
>>>> Personally, I prefer to properly identify integer constants
>>>> with the appropriate type annotation.  I always explicitly
>>>> check against NULL rather than using !ptr, for example.  I
>>>> never use an unadorned integer for a character constant,
>>>> rather using either 'c' for printables, the legal escapes
>>>> (e.g. \n) and for any non-printable, the appropriate
>>>> octal escape.
>>>>
>>>> Perhaps some of this is pedantic.   I worked with a system
>>>> where the null pointer constant was not the value zero, so
>>>> I'm aware that !ptr may not actually do the right thing in
>>>> such cases.
>>>
>>> Which is irrelevant in this specific case.
>>> BTW, I think that (ptr != 0) is guaranteed to work even on systems
>>> with null pointers not being numerically zero.  But I am not
>>> certain about it.  What I am certain is that on the right side of
>>> assignment to pointer 0 always acts the same as NULL.
>>> But that's too irrelevant for our case.
>>
>> It's easy enough to verify looking at a canonical source.
>> Section 6.3.2.3 coupled with 6.5.9 of C18 suggest this is
>> guaranteed to work.
>>
>>> As to being pedantic w.r.t. '\0', may be you acquired this habit
>>> because of C++?  If I am not mistaken, in C++ '\0' has type char
>>> and due to that (or because of, which is IMHO, more appropriate
>>> wording) can in some contexts lead to results different from 0,
>>> with differences as huge as call to completely different procedure.
>>> It does not happen in C where we have no misfeature of type based
>>> static polymorphism.
>>
>> '\0' is indeed a `char` in C++.  But I don't think that really
>> changes the point, which is more about semantics.  Why NOT use a
>> relevant character constant instead of `0`?  It's not whether
>> one can or not, or whether it's semantically equivalent, or
>> whether C's `char` type is really an integer in a trenchcoat:
>> it's using the appropriate constant to match the domain:  in this
>> case, matching character data.
>
>There's no reason to use a constant at all;  just write '*str'.
>This writing isn't just idiomatic -- it's integral to how the
>language was designed, not only for string termination but also
>the rules for null pointers and how expressions work in the
>context of for(), if(), and while().  Writing != 0 or != '\0' is
>a holdover from being used to writing Pascal (or any number of
>other earlier languages).

This is subjective, and _a_ response from a different school of
thought may be that `*str` is not a boolean type, and thus
should not be used in a boolean context.  You may disagree; I
may occasionally disagree myself, but again, it's subjective.

>When in Rome, do as the Romans do.

This is the critical part.  Many Unix and Unix-like kernels, for
instance, have style guides that demand comparison against an
appropriately type constants, along with other style rules about
the placement of braces, use of whitespace, indentation, and so
on.  If one works in those kernels, one doesn't really have a
lot of choice: one must do what the Romans in that instance of
Rome do, regardless of personal preference.

	- Dan C.

Back to comp.lang.c | Previous | NextPrevious in thread | Next in thread | Find similar


Thread

Small challenge: sort names DFS <nospam@dfs.com> - 2026-04-07 23:14 -0400
  Re: Small challenge: sort names Janis Papanagnou <janis_papanagnou+ng@hotmail.com> - 2026-04-08 10:22 +0200
    Re: Small challenge: sort names DFS <nospam@dfs.com> - 2026-04-08 12:25 -0400
      Re: Small challenge: sort names Bart <bc@freeuk.com> - 2026-04-08 18:57 +0100
        Re: Small challenge: sort names scott@slp53.sl.home (Scott Lurndal) - 2026-04-08 21:04 +0000
          Re: Small challenge: sort names Michael S <already5chosen@yahoo.com> - 2026-04-09 00:10 +0300
            Re: Small challenge: sort names scott@slp53.sl.home (Scott Lurndal) - 2026-04-08 23:35 +0000
              Re: Small challenge: sort names Michael S <already5chosen@yahoo.com> - 2026-04-09 02:59 +0300
                Re: Small challenge: sort names James Kuyper <jameskuyper@alumni.caltech.edu> - 2026-04-09 06:29 -0400
                Re: Small challenge: sort names cross@spitfire.i.gajendra.net (Dan Cross) - 2026-04-09 15:15 +0000
                Re: Small challenge: sort names Tim Rentsch <tr.17687@z991.linuxsc.com> - 2026-04-11 08:49 -0700
                Re: Small challenge: sort names cross@spitfire.i.gajendra.net (Dan Cross) - 2026-04-11 19:59 +0000
                Re: Small challenge: sort names Bonita Montero <Bonita.Montero@gmail.com> - 2026-04-16 18:50 +0200
                Re: Small challenge: sort names cross@spitfire.i.gajendra.net (Dan Cross) - 2026-04-16 19:54 +0000
                Re: Small challenge: sort names Bonita Montero <Bonita.Montero@gmail.com> - 2026-04-17 16:22 +0200
              Re: Small challenge: sort names Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2026-04-08 17:27 -0700
              Re: Small challenge: sort names Tim Rentsch <tr.17687@z991.linuxsc.com> - 2026-04-08 22:14 -0700
                Re: Small challenge: sort names Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2026-04-09 02:19 -0700
                Re: Small challenge: sort names scott@slp53.sl.home (Scott Lurndal) - 2026-04-09 15:06 +0000
                Re: Small challenge: sort names Tim Rentsch <tr.17687@z991.linuxsc.com> - 2026-04-12 06:35 -0700
                Re: Small challenge: sort names scott@slp53.sl.home (Scott Lurndal) - 2026-04-12 14:51 +0000
                Re: Small challenge: sort names Tim Rentsch <tr.17687@z991.linuxsc.com> - 2026-04-13 06:31 -0700
                Re: Small challenge: sort names Tim Rentsch <tr.17687@z991.linuxsc.com> - 2026-04-12 06:48 -0700
                Re: Small challenge: sort names Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2026-04-12 16:15 -0700
                Re: Small challenge: sort names Tim Rentsch <tr.17687@z991.linuxsc.com> - 2026-04-25 13:31 -0700
                Re: Small challenge: sort names Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2026-04-25 15:12 -0700
                Re: Small challenge: sort names Janis Papanagnou <janis_papanagnou+ng@hotmail.com> - 2026-04-26 04:13 +0200
                Re: Small challenge: sort names Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2026-04-25 19:50 -0700
                Re: Small challenge: sort names Janis Papanagnou <janis_papanagnou+ng@hotmail.com> - 2026-04-26 05:28 +0200
                Re: Small challenge: sort names David Brown <david.brown@hesbynett.no> - 2026-04-26 12:08 +0200
          Re: Small challenge: sort names Janis Papanagnou <janis_papanagnou+ng@hotmail.com> - 2026-04-11 08:44 +0200
        Re: Small challenge: sort names DFS <nospam@dfs.com> - 2026-04-08 17:13 -0400
          Re: Small challenge: sort names Janis Papanagnou <janis_papanagnou+ng@hotmail.com> - 2026-04-11 08:59 +0200
            Re: Small challenge: sort names Janis Papanagnou <janis_papanagnou+ng@hotmail.com> - 2026-04-11 09:34 +0200
      Re: Small challenge: sort names Janis Papanagnou <janis_papanagnou+ng@hotmail.com> - 2026-04-11 08:31 +0200
    Re: Small challenge: sort names BGB <cr88192@gmail.com> - 2026-04-12 13:08 -0500
    What is the point of anything? (Was: Small challenge: sort names) gazelle@shell.xmission.com (Kenny McCormack) - 2026-04-17 20:44 +0000
  Re: Small challenge: sort names Tim Rentsch <tr.17687@z991.linuxsc.com> - 2026-04-08 18:46 -0700
  Re: Small challenge: sort names Sort <Sort@invalid.invalid> - 2026-04-11 19:15 +0100
  Re: Small challenge: sort names Bonita Montero <Bonita.Montero@gmail.com> - 2026-04-16 18:24 +0200
    Re: Small challenge: sort names Bart <bc@freeuk.com> - 2026-04-16 18:38 +0100
      Re: Small challenge: sort names Bonita Montero <Bonita.Montero@gmail.com> - 2026-04-16 19:43 +0200
    Re: Small challenge: sort names Bart <bc@freeuk.com> - 2026-04-18 11:22 +0100
      Re: Small challenge: sort names Bonita Montero <Bonita.Montero@gmail.com> - 2026-04-18 17:48 +0200
        Re: Small challenge: sort names Bonita Montero <Bonita.Montero@gmail.com> - 2026-04-19 08:44 +0200
    Re: Small challenge: sort names DFS <nospam@dfs.com> - 2026-04-22 05:33 -0400
      Re: Small challenge: sort names Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2026-04-22 03:16 -0700
        Re: Small challenge: sort names DFS <nospam@dfs.com> - 2026-04-22 07:35 -0400
          Re: Small challenge: sort names Tim Rentsch <tr.17687@z991.linuxsc.com> - 2026-04-23 08:11 -0700
            Re: Small challenge: sort names Bonita Montero <Bonita.Montero@gmail.com> - 2026-04-23 20:14 +0200
              Re: Small challenge: sort names gazelle@shell.xmission.com (Kenny McCormack) - 2026-04-23 18:30 +0000
        Re: Small challenge: sort names gazelle@shell.xmission.com (Kenny McCormack) - 2026-04-23 17:19 +0000
      Re: Small challenge: sort names Janis Papanagnou <janis_papanagnou+ng@hotmail.com> - 2026-04-22 14:11 +0200
        Re: Small challenge: sort names James Kuyper <jameskuyper@alumni.caltech.edu> - 2026-04-22 21:27 -0400
          [OT][meta] Gender (was Re: Small challenge: sort names) Janis Papanagnou <janis_papanagnou+ng@hotmail.com> - 2026-04-23 15:51 +0200
            Re: [OT][meta] Gender (was Re: Small challenge: sort names) scott@slp53.sl.home (Scott Lurndal) - 2026-04-23 14:45 +0000
              Re: [OT][meta] Gender (was Re: Small challenge: sort names) Janis Papanagnou <janis_papanagnou+ng@hotmail.com> - 2026-04-23 17:03 +0200
              Re: [OT][meta] Gender (was Re: Small challenge: sort names) DFS <nospam@dfs.com> - 2026-04-23 20:31 -0400
                Re: [OT][meta] Gender (was Re: Small challenge: sort names) Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2026-04-23 18:43 -0700
                Re: [OT][meta] Gender (was Re: Small challenge: sort names) gazelle@shell.xmission.com (Kenny McCormack) - 2026-04-24 16:58 +0000
                Re: [OT][meta] Gender (was Re: Small challenge: sort names) Jan van den Broek <balglaas@dds.nl> - 2026-04-24 06:57 +0000
                Re: [OT][meta] Gender (was Re: Small challenge: sort names) Bonita Montero <Bonita.Montero@gmail.com> - 2026-04-24 10:10 +0200
                Re: [OT][meta] Gender (was Re: Small challenge: sort names) David Brown <david.brown@hesbynett.no> - 2026-04-24 12:52 +0200
            Re: [OT][meta] Gender (was Re: Small challenge: sort names) Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2026-04-23 16:36 -0700
              Re: [OT][meta] Gender (was Re: Small challenge: sort names) Janis Papanagnou <janis_papanagnou+ng@hotmail.com> - 2026-04-24 03:01 +0200
                Re: [OT][meta] Gender (was Re: Small challenge: sort names) Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2026-04-23 18:50 -0700
                Re: [OT][meta] Gender (was Re: Small challenge: sort names) "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2026-04-24 20:35 -0700
            Re: [OT][meta] Gender (was Re: Small challenge: sort names) Michael S <already5chosen@yahoo.com> - 2026-04-24 14:20 +0300
              Re: [OT][meta] Gender (was Re: Small challenge: sort names) Janis Papanagnou <janis_papanagnou+ng@hotmail.com> - 2026-04-24 14:32 +0200
      Re: Small challenge: sort names Bonita Montero <Bonita.Montero@gmail.com> - 2026-04-23 20:10 +0200
        Re: Small challenge: sort names DFS <nospam@dfs.com> - 2026-04-25 10:26 -0400
          Re: Small challenge: sort names Bonita Montero <Bonita.Montero@gmail.com> - 2026-04-26 13:01 +0200
  Re: Small challenge: sort names Rosario19 <Ros@invalid.invalid> - 2026-04-18 11:16 +0200
    Re: Small challenge: sort names DFS <nospam@dfs.com> - 2026-04-18 08:11 -0400
      Re: Small challenge: sort names Bart <bc@freeuk.com> - 2026-04-18 14:03 +0100
    Re: Small challenge: sort names Rosario19 <Ros@invalid.invalid> - 2026-04-20 21:20 +0200
      Re: Small challenge: sort names DFS <nospam@dfs.com> - 2026-04-20 16:43 -0400
        Re: Small challenge: sort names Rosario19 <Ros@invalid.invalid> - 2026-04-21 05:09 +0200
          Re: Small challenge: sort names DFS <nospam@dfs.com> - 2026-04-21 08:46 -0400
            Re: Small challenge: sort names Bart <bc@freeuk.com> - 2026-04-21 16:08 +0100
              Re: Small challenge: sort names DFS <nospam@dfs.com> - 2026-04-21 11:33 -0400
                Re: Small challenge: sort names Bart <bc@freeuk.com> - 2026-04-21 18:25 +0100
                Re: Small challenge: sort names scott@slp53.sl.home (Scott Lurndal) - 2026-04-21 17:38 +0000
                Re: Small challenge: sort names Michael S <already5chosen@yahoo.com> - 2026-04-21 20:50 +0300
                Re: Small challenge: sort names scott@slp53.sl.home (Scott Lurndal) - 2026-04-21 18:22 +0000
                Re: Small challenge: sort names Janis Papanagnou <janis_papanagnou+ng@hotmail.com> - 2026-04-22 03:48 +0200
                Re: Small challenge: sort names David Brown <david.brown@hesbynett.no> - 2026-04-22 09:18 +0200
                Re: Small challenge: sort names Michael S <already5chosen@yahoo.com> - 2026-04-22 13:22 +0300
                Re: Small challenge: sort names David Brown <david.brown@hesbynett.no> - 2026-04-22 12:38 +0200
                Re: Small challenge: sort names Michael S <already5chosen@yahoo.com> - 2026-04-22 13:58 +0300
                Re: Small challenge: sort names David Brown <david.brown@hesbynett.no> - 2026-04-22 13:13 +0200
                Re: Small challenge: sort names Janis Papanagnou <janis_papanagnou+ng@hotmail.com> - 2026-04-22 14:53 +0200
                Re: Small challenge: sort names DFS <nospam@dfs.com> - 2026-04-21 16:31 -0400
                Re: Small challenge: sort names Bart <bc@freeuk.com> - 2026-04-21 23:04 +0100
      Re: Small challenge: sort names Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2026-04-20 14:16 -0700
        An audience of one (Was: Small challenge: sort names) gazelle@shell.xmission.com (Kenny McCormack) - 2026-04-21 13:00 +0000
          Re: An audience of one (Was: Small challenge: sort names) "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2026-04-21 12:21 -0700
    Re: Small challenge: sort names Rosario19 <Ros@invalid.invalid> - 2026-04-21 05:00 +0200
      Re: Small challenge: sort names Rosario19 <Ros@invalid.invalid> - 2026-04-21 05:06 +0200
  Re: Small challenge: sort names gggggggggggunit <gunitinug@50cent.com> - 2026-04-18 10:19 +0000
    [OT] Shell approach to Re: Small challenge: sort names Janis Papanagnou <janis_papanagnou+ng@hotmail.com> - 2026-04-19 09:35 +0200
      Re: [OT] Shell approach to Re: Small challenge: sort names gazelle@shell.xmission.com (Kenny McCormack) - 2026-04-19 14:18 +0000
        Re: [OT] Shell approach to Re: Small challenge: sort names cross@spitfire.i.gajendra.net (Dan Cross) - 2026-04-19 19:32 +0000
          Re: [OT] Shell approach to Re: Small challenge: sort names Janis Papanagnou <janis_papanagnou+ng@hotmail.com> - 2026-04-22 03:34 +0200

csiph-web