Message-ID: <3BB50884.347A4384@yahoo.com> From: CBFalconer Organization: Ched Research X-Mailer: Mozilla 4.75 [en] (Win98; U) X-Accept-Language: en MIME-Version: 1.0 Newsgroups: comp.os.msdos.djgpp Subject: Re: Please add strrev proposal References: Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Lines: 73 Date: Sat, 29 Sep 2001 00:28:28 GMT NNTP-Posting-Host: 12.90.171.16 X-Complaints-To: abuse AT worldnet DOT att DOT net X-Trace: bgtnsc06-news.ops.worldnet.att.net 1001723308 12.90.171.16 (Sat, 29 Sep 2001 00:28:28 GMT) NNTP-Posting-Date: Sat, 29 Sep 2001 00:28:28 GMT To: djgpp AT delorie DOT com DJ-Gateway: from newsgroup comp.os.msdos.djgpp Reply-To: djgpp AT delorie DOT com "A. Sinan Unur" wrote: > > Radical NetSurfer wrote in > news:lcq8rtk1nqua2hc6rqfhmqisbd587n8t2n AT 4ax DOT com: > > > I would like to encourage everyone who has a need for > > strrev to come forward and encourage the maintainers of > > LIBC used with GCC to kindly add strrev. > > Count me against this if for no other reason that the fact that I do not > like extra nonstandard function which solve tiny problems. If you need the > functionality, you can write one for your own situation. If it is going to > be added to a library, the solution needs to be useful to more than just > one person in a particular situation. > > Anyway, the main point of my post, however, is to point out just one of the > gotchas with these kinds of functions. > > You give the following usage example: > > > Example > > printf("The reverse of %s is %s\n", str, strrev(str) ); > > Hmmmmm ..... let us see using the code you suggested: > > /* +++Date last modified: 05-Jul-1997 */ > /* > ** STRREV.C - reverse a string in place > ** > ** public domain by Bob Stout > */ > > #include > #include > #include > > 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; > } > > int main(void) > { > char s[] = "This is a test."; > printf("Original String: %s\nReversed String:%s\n", s, strrev(s)); > return 0; > } > > C:\var>gcc djstrrev.c -o djstrrev.exe -O2 -Wall > > C:\var>djstrrev > Original String: .tset a si sihT > Reversed String: .tset a si sihT > > Now, think about that. Thank you. I knew there was a reason I made my equivalent (revstring) a void function. I just didn't know what it was :-) -- Chuck F (cbfalconer AT yahoo DOT com) (cbfalconer AT XXXXworldnet DOT att DOT net) (Remove "XXXX" from reply address. yahoo works unmodified) mailto:uce AT ftc DOT gov (for spambots to harvest)