?? tostring.c
字號(hào):
/* * (c) Copyright 1990 Conor P. Cahill (uunet!virtech!cpcahil). * You may copy, distribute, and use this software as long as this * copyright statement is not removed. */#include "tostring.h"/* * Function: tostring() * * Purpose: to convert an integer to an ascii display string * * Arguments: buf - place to put the * val - integer to convert * len - length of output field (0 if just enough to hold data) * base - base for number conversion (only works for base <= 16) * fill - fill char when len > # digits * * Returns: length of string * * Narrative: IF fill character is non-blank * Determine base * If base is HEX * add "0x" to begining of string * IF base is OCTAL * add "0" to begining of string * * While value is greater than zero * use val % base as index into xlation str to get cur char * divide val by base * * Determine fill-in length * * Fill in fill chars * * Copy in number * * * Mod History: * 90/01/24 cpcahil Initial revision. */#ifndef lintstaticchar rcs_hdr[] = "$Id: tostring.c,v 1.4 90/05/11 00:13:11 cpcahil Exp $";#endif#define T_LEN 10inttostring(buf,val,len,base,fill) int base; char * buf; char fill; int len; int val; { char * bufstart = buf; int i = T_LEN; char * xbuf = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"; char tbuf[T_LEN]; /* * if we are filling with non-blanks, make sure the * proper start string is added */ if( fill != ' ' ) { switch(base) { case B_HEX: *(buf++) = '0'; *(buf++) = 'x'; if( len ) { len -= 2; } break; case B_OCTAL: *(buf++) = fill; if( len ) { len--; } break; default: break; } } while( val > 0 ) { tbuf[--i] = xbuf[val % base]; val = val / base; } if( len ) { len -= (T_LEN - i); if( len > 0 ) { while(len-- > 0) { *(buf++) = fill; } } else { /* * string is too long so we must truncate * off some characters. We do this the easiest * way by just incrementing i. This means the * most significant digits are lost. */ while( len++ < 0 ) { i++; } } } while( i < T_LEN ) { *(buf++) = tbuf[i++]; } return( (int) (buf - bufstart) );} /* tostring(... *//* * $Log: tostring.c,v $ * Revision 1.4 90/05/11 00:13:11 cpcahil * added copyright statment * * Revision 1.3 90/02/24 21:50:33 cpcahil * lots of lint fixes * * Revision 1.2 90/02/24 17:29:42 cpcahil * changed $Header to $Id so full path wouldnt be included as part of rcs * id string * * Revision 1.1 90/02/22 23:17:44 cpcahil * Initial revision * */
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -