C/Strncatf

From Attie's Wiki
(Difference between revisions)
Jump to: navigation, search
Line 1: Line 1:
This is a variation of <code>strcat()</code> that allows you to pass a formatted string like <code>printf()</code>. It also takes a max length for dest, not for how much of src to use (like <code>strncat()</code>.
+
This is a variation of <code>strcat()</code> that allows you to pass a formatted string like <code>printf()</code>. It also takes a max length for dest, not for how much of src to use (like <code>strncat()</code>).
 
<source lang="c">
 
<source lang="c">
 
char *strncatf(char *dest, int length, char *format, ...) {
 
char *strncatf(char *dest, int length, char *format, ...) {

Revision as of 12:22, 4 March 2010

This is a variation of strcat() that allows you to pass a formatted string like printf(). It also takes a max length for dest, not for how much of src to use (like strncat()).

char *strncatf(char *dest, int length, char *format, ...) {
  char buf[4096];
  va_list ap;
  va_start(ap,format);
  vsnprintf(buf,sizeof(buf),format,ap);
  va_end(ap);
  length -= strlen(dest);
  strncat(dest,buf,length-1);
}
Personal tools
Namespaces

Variants
Actions
Navigation
Toolbox