scheck.c
来自「一个C源代码分析器」· C语言 代码 · 共 63 行
C
63 行
#ifndef lint#ifndef NOIDstatic char elsieid[] = "@(#)scheck.c 8.11";#endif /* !defined lint */#endif /* !defined NOID *//*LINTLIBRARY*/#include "private.h"extern char * imalloc P((int n));extern void ifree P((char * p));char *scheck(string, format)const char * const string;const char * const format;{ register char * fbuf; register const char * fp; register char * tp; register int c; register char * result; char dummy; static char nada[1]; result = nada; if (string == NULL || format == NULL) return result; fbuf = imalloc(2 * strlen(format) + 4); if (fbuf == NULL) return result; fp = format; tp = fbuf; while ((*tp++ = c = *fp++) != '\0') { if (c != '%') continue; if (*fp == '%') { *tp++ = *fp++; continue; } *tp++ = '*'; if (*fp == '*') ++fp; while (isascii(*fp) && isdigit(*fp)) *tp++ = *fp++; if (*fp == 'l' || *fp == 'h') *tp++ = *fp++; else if (*fp == '[') do *tp++ = *fp++; while (*fp != '\0' && *fp != ']'); if ((*tp++ = *fp++) == '\0') break; } *(tp - 1) = '%'; *tp++ = 'c'; *tp = '\0'; if (sscanf(string, fbuf, &dummy) != 1) result = (char *) format; ifree(fbuf); return result;}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?