Scan input from a string (varargs)
#include <stdio.h> #include <stdarg.h> int vsscanf( const char* in_string, const char* format, va_list arg );
libc
Use the -l c option to qcc to link against this library. This library is usually included automatically.
The vsscanf() function scans input from the string designated by in_string, under control of the argument format.
The vsscanf() function is a “varargs” version of sscanf().
The number of input arguments for which values were successfully scanned and stored is returned, or EOF when the scanning is terminated by reaching the end of the input string.
#include <stdio.h> #include <stdarg.h> #include <stdlib.h> void sfind( char* string, char* format, ... ) { va_list arglist; va_start( arglist, format ); vsscanf( string, format, arglist ); va_end( arglist ); } int main( void ) { int day, year; char weekday[10], month[12]; sfind( "Monday June 28 1999", "%s %s %d %d", weekday, month, &day, &year ); printf( "\n%s, %s %d, %d\n", weekday, month, day, year ); return EXIT_SUCCESS; }
Safety: | |
---|---|
Cancellation point | No |
Interrupt handler | No |
Signal handler | Read the Caveats |
Thread | Yes |
It's safe to call vsscanf() in a signal handler if the data isn't floating point.
fscanf(), fwscanf(), scanf(), sscanf(), swscanf(), va_start(), vfscanf(), vfwscanf(), vscanf(), vswscanf(), vwscanf(), wscanf()