www.delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/2001/09/27/16:34:14

From: Radical DOT NetSurfer AT delorie DOT com
Newsgroups: comp.os.msdos.djgpp
Subject: Re: Benchmark Testing
Date: Thu, 27 Sep 2001 16:22:02 -0400
Organization: Posted via Supernews, http://www.supernews.com
Message-ID: <nb27rt0c7nnaok3t4i5j8ojenegg0085ba@4ax.com>
References: <b4o2rtg4vhngk1ielgftmdo2jk4d9ogu86 AT 4ax DOT com> <9osdbt$r8k$1 AT nets3 DOT rz DOT RWTH-Aachen DOT DE> <ao54rtg7v4un2mc04466ch55eq53fvha1h AT 4ax DOT com> <9ov09c$gig$1 AT nets3 DOT rz DOT RWTH-Aachen DOT DE> <ep86rtg0mp41toqlis77ojcd50mojb3tc7 AT 4ax DOT com> <4634-Thu27Sep2001154412+0300-eliz AT is DOT elta DOT co DOT il>
X-Newsreader: Forte Agent 1.8/32.548
MIME-Version: 1.0
X-Complaints-To: newsabuse AT supernews DOT com
Lines: 49
To: djgpp AT delorie DOT com
DJ-Gateway: from newsgroup comp.os.msdos.djgpp
Reply-To: djgpp AT delorie DOT com

/*
**  STRREV.C - reverse a string in place
**
**  public domain by Bob Stout
*/
char *strrev(char *str) {
      char *p1, *p2;

      if (! str || ! *str) return str;
      for (p1 = str, p2 = str + strlen(str) - 1; p2 > p1; ++p1, --p2)
      {
            *p1 ^= *p2;
            *p2 ^= *p1;
            *p1 ^= *p2;
      }
      return str;
}

and how does the above code compare to, whats below,
in terms of CPU time, and memory-access, etc?

/* ======================= */
/* reverse string in place */
char *strrev(char *string) {
   char *last, temp;

   last = string + strlen(string); /* points to '\0' */
   while (last-- > string) {
      temp = *string; *string++ = *last; *last = temp;
     }
  return (char*)string;

} /* strrev */

strrev(), according to every compiler I've seen that supports it,
always returns a pointer to the modified string.

On Thu, 27 Sep 2001 15:44:13 +0200, "Eli Zaretskii"
<eliz AT is DOT elta DOT co DOT il> wrote:

>> From: Radical DOT NetSurfer AT delorie DOT com
>> Newsgroups: comp.os.msdos.djgpp
>> Date: Thu, 27 Sep 2001 09:06:49 -0400
>> 
>> PLEASE libc.a people, __add__  strrev() its been missing for far too
>> long. Thanks.
>
>It's on my TODO.

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019