/*
* * This file is in the public domain , so clarified as of
* * 2006 - 07 - 17 by Arthur David Olson .
*/
/*LINTLIBRARY*/
#include "private.h"
const char *
scheck(const char *const string, const char *const format)
{
register char * fbuf;
register const char * fp;
register char * tp;
register int c;
register const char * result;
char dummy;
result = "" ;
if (string == NULL || format == NULL)
return result;
fbuf = malloc(2 * strlen(format) + 4 );
if (fbuf == NULL)
return result;
fp = format;
tp = fbuf;
/*
* * Copy directives , suppressing each conversion that is not
* * already suppressed . Scansets containing ' % ' are not
* * supported ; e . g . , the conversion specification " % [ % ] " is not
* * supported . Also , multibyte characters containing a
* * non - leading ' % ' byte are not supported .
*/
while ((*tp++ = c = *fp++) != '\0' ) {
if (c != '%' )
continue ;
if (is_digit(*fp)) {
char const *f = fp;
char *t = tp;
do {
*t++ = c = *f++;
} while (is_digit(c));
if (c == '$' ) {
fp = f;
tp = t;
}
}
*tp++ = '*' ;
if (*fp == '*' )
++fp;
if ((*tp++ = *fp++) == '\0' )
break ;
}
*(tp - 1 ) = '%' ;
*tp++ = 'c' ;
*tp = '\0' ;
if (sscanf(string, fbuf, &dummy) != 1 )
result = format;
free(fbuf);
return result;
}
Messung V0.5 in Prozent C=96 H=85 G=90
¤ Dauer der Verarbeitung: 0.10 Sekunden
(vorverarbeitet am 2026-09-30)
¤
*© Formatika GbR, Deutschland