Chapter Contents |
Previous |
Next |
vsprintf |
Portability: | ISO/ANSI C conforming |
SYNOPSIS | |
DESCRIPTION | |
RETURN VALUE | |
EXAMPLE | |
RELATED FUNCTIONS | |
SEE ALSO |
SYNOPSIS |
#include <stdarg.h> #include <stdio.h> int vsprintf(char *s, const char *format, va_list arg);
DESCRIPTION |
vsprintf
is equivalent to
sprintf
with
arg
replacing the variable-argument list.
arg
has been initialized by the
va_start
macro and possibly
va_arg
calls.
vsprintf
does not invoke the
va_end
macro. See va_arg, va_end, and
va_start for details
on varying-length argument-list functions.
RETURN VALUE |
vsprintf
returns the number of characters written in the array, not counting the terminating-null
character.
EXAMPLE |
#include <stdio.h> #include <stdarg.h> #include <string.h> static void format_msg(char *, int, int, ...); #define NOTE 0 #define WARNING 1 main() { char msgbuf[100]; format_msg(msgbuf, NOTE, 0); printf("The formatted message is: "%s" \n", msgbuf); format_msg(msgbuf, WARNING,1, "a replacement string"); printf("The formatted message is: "%s" \n", msgbuf); return; } static const char *msgs[] = { "This is message number zero", "This message requires %s" }; static const char *levels[] = { "NOTE: ", "WARNING: " }; static void format_msg(char *buf, int msgno, int level, ...) { va_list args; va_start(args, level); /* Copy in the message prefix. Format the */ /* remainder of the message with vsprintf(). */ strcpy(buf, levels[level]); vsprintf(buf + strlen(levels[level]),msgs[msgno], args); va_end(args); }
RELATED FUNCTIONS |
sprintf
,
va_start
,
vformat
,
vsnprintf
SEE ALSO |
Chapter Contents |
Previous |
Next |
Top of Page |
Copyright © 2001 by SAS Institute Inc., Cary, NC, USA. All rights reserved.