Groups | Search | Server Info | Login | Register
Groups > comp.lang.c > #397439
| From | Keith Thompson <Keith.S.Thompson+u@gmail.com> |
|---|---|
| Newsgroups | comp.lang.c |
| Subject | Re: Small challenge: sort names |
| Date | 2026-04-08 17:27 -0700 |
| Organization | None to speak of |
| Message-ID | <87h5pl2d1i.fsf@example.invalid> (permalink) |
| References | (2 earlier) <10r5vh2$3mo17$2@dont-email.me> <10r64uq$3pf3r$1@dont-email.me> <YpzBR.6$rGx6.1@fx24.iad> <20260409001030.000006c9@yahoo.com> <bDBBR.139$Np7d.78@fx15.iad> |
scott@slp53.sl.home (Scott Lurndal) writes:
> Michael S <already5chosen@yahoo.com> writes:
>>On Wed, 08 Apr 2026 21:04:56 GMT
>>scott@slp53.sl.home (Scott Lurndal) wrote:
>>
>>> Bart <bc@freeuk.com> writes:
>>> >On 08/04/2026 17:25, DFS wrote:
>>> >> On 4/8/2026 4:22 AM, Janis Papanagnou wrote:
>>>
>>> >//count characters in a string
>>> >int countchr(char *str, char chr)
>>> >{int
>>> >c=0,cnt=0;while(str[c]!='\0'){if(str[c]==chr){cnt++;}c++;}return
>>> >cnt;}
>>> >
>>> >I couldn't quite figure out what it did; counting characters in a
>>> >string (like the comment says)? But strlen will do that. Then I
>>> >noticed that the extra 'chr' parameter, so maybe it stops at 'chr'.
>>> >
>>> >But when I tried running it as countchr("ABCDEFGH", 'E'), it
>>> >returned 1, not 4 or 5.
>>> >
>>> >So I refactored it like this:
>>> >
>>> > int countchr(char *str, char chr) {
>>> > int c=0, cnt=0;
>>> > while (str[c]!='\0') {
>>> > if (str[c] == chr) cnt++;
>>> > c++;
>>> > }
>>> > return cnt;
>>> > }
>>>
>>> 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;
>> }
I wouldn't, but it's a matter of taste.
> 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.
I'd probably use 0 rather than 0u for an initial value of a size_t
object. 0u is probably going to have to be converted anyway (unless
size_t happens to be unsigned int). I don't mind relying on the
implicit conversion in `size_t count = 0;`.
But for `*str != 0`, I prefer `*str != '\0'` -- not because it
matters to the compiler (it doesn't), but because I find it easier
to read. I like the visible reminder that it's a character value.
> 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.
It does. A constant 0 is always a null pointer constant.
Converting an NPC to a pointer type, implicitly or explicitly,
always yields a null pointer value, regardless of how null pointer
values happen to be represented. But I still prefer using NULL
(or nullptr in C23 or C++) when I want a null pointer value.
--
Keith Thompson (The_Other_Keith) Keith.S.Thompson+u@gmail.com
void Void(void) { Void(); } /* The recursive call of the void */
Back to comp.lang.c | Previous | Next — Previous in thread | Next in thread | Find similar
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-26 18:16 +0200
Re: Small challenge: sort names David Brown <david.brown@hesbynett.no> - 2026-04-26 19:37 +0200
Re: Small challenge: sort names Janis Papanagnou <janis_papanagnou+ng@hotmail.com> - 2026-04-27 02:17 +0200
Re: Small challenge: sort names David Brown <david.brown@hesbynett.no> - 2026-04-27 09:19 +0200
Re: Small challenge: sort names scott@slp53.sl.home (Scott Lurndal) - 2026-04-26 17:47 +0000
Re: Small challenge: sort names Janis Papanagnou <janis_papanagnou+ng@hotmail.com> - 2026-04-27 02:33 +0200
Re: Small challenge: sort names David Brown <david.brown@hesbynett.no> - 2026-04-27 09:34 +0200
Re: Small challenge: sort names Janis Papanagnou <janis_papanagnou+ng@hotmail.com> - 2026-04-27 12:35 +0200
Re: Small challenge: sort names Bart <bc@freeuk.com> - 2026-04-27 13:28 +0100
Re: Small challenge: sort names Janis Papanagnou <janis_papanagnou+ng@hotmail.com> - 2026-04-27 17:02 +0200
Re: Small challenge: sort names Janis Papanagnou <janis_papanagnou+ng@hotmail.com> - 2026-04-27 17:36 +0200
Re: Small challenge: sort names scott@slp53.sl.home (Scott Lurndal) - 2026-04-27 16:18 +0000
Re: Small challenge: sort names Michael S <already5chosen@yahoo.com> - 2026-04-27 11:42 +0300
Re: Small challenge: sort names scott@slp53.sl.home (Scott Lurndal) - 2026-04-27 16:27 +0000
Assembler verb choice (Was: Small challenge: sort names) gazelle@shell.xmission.com (Kenny McCormack) - 2026-04-28 12:59 +0000
Re: Assembler verb choice (Was: Small challenge: sort names) Janis Papanagnou <janis_papanagnou+ng@hotmail.com> - 2026-04-28 16:26 +0200
Re: Small challenge: sort names "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2026-04-27 12:45 -0700
Re: Small challenge: sort names "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2026-04-27 12:42 -0700
Re: Small challenge: sort names "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2026-04-27 12:43 -0700
Re: Small challenge: sort names Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2026-04-27 12:59 -0700
Re: Small challenge: sort names "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2026-04-27 13:26 -0700
Re: Small challenge: sort names cross@spitfire.i.gajendra.net (Dan Cross) - 2026-04-27 20:43 +0000
Re: Small challenge: sort names "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2026-04-27 17:30 -0700
Re: Small challenge: sort names Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2026-04-27 19:15 -0700
Re: Small challenge: sort names gazelle@shell.xmission.com (Kenny McCormack) - 2026-04-28 12:01 +0000
Re: Small challenge: sort names David Brown <david.brown@hesbynett.no> - 2026-04-28 08:35 +0200
Re: Small challenge: sort names cross@spitfire.i.gajendra.net (Dan Cross) - 2026-04-28 13:27 +0000
Re: Small challenge: sort names David Brown <david.brown@hesbynett.no> - 2026-04-28 15:59 +0200
Re: Small challenge: sort names Janis Papanagnou <janis_papanagnou+ng@hotmail.com> - 2026-04-28 16:49 +0200
Re: Small challenge: sort names David Brown <david.brown@hesbynett.no> - 2026-04-28 17:25 +0200
Re: Small challenge: sort names Janis Papanagnou <janis_papanagnou+ng@hotmail.com> - 2026-04-28 23:46 +0200
Re: Small challenge: sort names cross@spitfire.i.gajendra.net (Dan Cross) - 2026-04-28 18:12 +0000
Re: Small challenge: sort names David Brown <david.brown@hesbynett.no> - 2026-04-28 20:28 +0200
Re: Small challenge: sort names vallor <vallor@vallor.earth> - 2026-04-28 13:45 +0000
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 vallor <vallor@vallor.earth> - 2026-04-28 14:19 +0000
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
Re: Small challenge: sort names Bonita Montero <Bonita.Montero@gmail.com> - 2026-04-28 06:53 +0200
Re: Small challenge: sort names gazelle@shell.xmission.com (Kenny McCormack) - 2026-04-28 13:01 +0000
csiph-web