Can't Copy and Paste this?

Click here for a copy-and-paste friendly version of this code!

 

Terms of Agreement:   

By using this code, you agree to the following terms...   

1) You may use this code in your own programs (and may compile it into a program and distribute it in compiled format for langauges that allow it) freely and with no charge.   

2) You MAY NOT redistribute this code (for example to a web site) without written permission from the original author. Failure to do so is a violation of copyright laws.   

3) You may link to this code from another website, but ONLY if it is not wrapped in a frame. 

4) You will abide by any additional copyright restrictions which the author may have placed in the code or code's description.  

//     

/* +++Date last modified: 05-Jul-1997 */

/*

** STRREV.C - reverse a string in place

**

** public domain by Bob Stout

*/

#include 

#include "snip_str.h"

#if defined(__cplusplus) && __cplusplus

    extern "C" {

    #endif

    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;

    }

    #if defined(__cplusplus) && __cplusplus

}

#endif

#ifdef TEST

#include 

int main(int argc, char *argv[])

    {

    while (--argc)

        {

        printf("\"%s\" backwards is ", *++argv);

        printf("\"%s\"\n", strrev(*argv));

    }

    return 0;

}

#endif /* TEST */

 

 

Other 156 submission(s) by this author