I\'m working in C, and I have to concatenate a few things.
Right now I have this:
message = strcat(\"TEXT \", var);
message2 = strcat(strcat(\"TEXT
Assuming you have a char[fixed_size] rather than a char*, you can use a single, creative macro to do it all at once with a <
*printf
family of functions like snprintf()
(This keeps dietlibc from complaining about *printf too)
#include //for the write example
//note: you should check if offset==sizeof(buf) after use
#define strcpyALL(buf, offset, ...) do{ \
char *bp=(char*)(buf+offset); /*so we can add to the end of a string*/ \
const char *s, \
*a[] = { __VA_ARGS__,NULL}, \
**ss=a; \
while((s=*ss++)) \
while((*s)&&(++offset<(int)sizeof(buf))) \
*bp++=*s++; \
if (offset!=sizeof(buf))*bp=0; \
}while(0)
char buf[256];
int len=0;
strcpyALL(buf,len,
"The config file is in:\n\t",getenv("HOME"),"/.config/",argv[0],"/config.rc\n"
);
if (len