code:

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 */

#include 

#include 

#include "snip_str.h"

#if defined(__cplusplus) && __cplusplus

    extern "C" {

    #endif

    char *strchcat(char *string, int ch, size_t buflen)

        {

        size_t len;

        if (NULL == string || ((len = strlen(string)) + 1) >= buflen)

        return NULL;

        string[len++] = ch;

        string[len]= '\0';

        return string;

    }

    #if defined(__cplusplus) && __cplusplus

}

#endif

#ifdef TEST

#include 

main()

    {

    char buf1[80] = "This buffer's big enough",

    buf2[] = "This one's not";

    char *ptr;

    printf("strchcat(\"%s\", '!') ", buf1);

    ptr = strchcat(buf1, '!', sizeof(buf1));

    printf("returned %p...", ptr);

    if (NULL != ptr)

    printf("\n...which is \"%s\"", buf1);

    puts("\n");

    printf("strchcat(\"%s\", '!') ", buf2);

    ptr = strchcat(buf2, '!', sizeof(buf2));

    printf("returned %p...", ptr);

    if (NULL != ptr)

    printf("\n...which is \"%s\"", buf2);

    puts("\n");

    return EXIT_SUCCESS;

}

#endif /* TEST */