pstrutils.cxx (1048B)
1 /* 2 * 3 * C++ Portable Types Library (PTypes) 4 * Version 2.1.1 Released 27-Jun-2007 5 * 6 * Copyright (C) 2001-2007 Hovik Melikyan 7 * 8 * http://www.melikyan.com/ptypes/ 9 * 10 */ 11 12 #include <string.h> 13 14 #include "ptypes.h" 15 16 17 namespace ptypes { 18 19 20 string ptdecl fill(int width, char pad) 21 { 22 string res; 23 if (width > 0) { 24 setlength(res, width); 25 memset(pchar(pconst(res)), pad, length(res)); 26 } 27 return res; 28 } 29 30 31 string ptdecl pad(const string& s, int width, char c, bool left) 32 { 33 int len = length(s); 34 if (len < width && width > 0) 35 { 36 string res; 37 setlength(res, width); 38 if (left) 39 { 40 if (len > 0) 41 memcpy(pchar(pconst(res)), pconst(s), len); 42 memset(pchar(pconst(res)) + len, c, width - len); 43 } 44 else 45 { 46 memset(pchar(pconst(res)), c, width - len); 47 if (len > 0) 48 memcpy(pchar(pconst(res)) + width - len, pconst(s), len); 49 } 50 return res; 51 } 52 else 53 return s; 54 } 55 56 57 }