Mail Archives: djgpp/2001/09/28/14:34:06
in my humble opinion, its NONstandard that Libc doesn't already have
this. Please name one other C/C++ compiler that also omits it?
On 28 Sep 2001 17:23:00 GMT, "A. Sinan Unur" <asu1 AT cornell DOT edu> 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 <string.h>
>#include <stdlib.h>
>#include <stdio.h>
>
>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.
- Raw text -