From 6e47eeb7de893f8e01e182333bfe3d753c9026de Mon Sep 17 00:00:00 2001 From: augusto Date: Tue, 29 Apr 1997 09:36:12 +0000 Subject: [PATCH] Aggiunti metodi rpad e lpad git-svn-id: svn://10.65.10.50/trunk@4302 c028cbd2-c16b-5b4b-a496-9718f37d4682 --- include/strings.cpp | 32 ++++++++++++++++++++++++++++++++ include/strings.h | 4 ++++ 2 files changed, 36 insertions(+) diff --git a/include/strings.cpp b/include/strings.cpp index 942353df6..5209a5259 100755 --- a/include/strings.cpp +++ b/include/strings.cpp @@ -441,6 +441,38 @@ TString& TString::cut(int n) return *this; } +// @doc EXTERNAL +// @mfunc Espande la stringa fino alla lunghezza indicata, eventualmente aggiungendo spazi a destra +TString& TString::rpad(const int n,const char c) +{ + const int & l= len(); + + if (n>l) + { + if (n > size()) resize(n, TRUE); + memset(_str+l, c, n-l); + _str[n] = '\0'; + } + return *this; +} + +// @doc EXTERNAL +// @mfunc Espande la stringa fino alla lunghezza indicata, eventualmente aggiungendo spazi a sinistra +TString& TString::lpad(const int n,const char c) +{ + int l=len(); + const int nsp=n-l; + if (n>l) + { + if (n > size()) resize(n, TRUE); + for (l--; l>=0; l--) + *(_str+l+nsp)=*(_str+l); + memset(_str, c, nsp); + _str[n] = '\0'; + } + return *this; +} + // @doc EXTERNAL // @mfunc Elimina gli spazi da sinistra o i primi n caratteri (da sinistra). diff --git a/include/strings.h b/include/strings.h index aed7a5930..cc9d654b7 100755 --- a/include/strings.h +++ b/include/strings.h @@ -154,6 +154,10 @@ public: // @cmember Composizione di e per eliminare // gli spazi iniziali e finali TString& trim(); + // @cmember Aggiunge spazi a destra fino alla dimensione indicata + TString& rpad(const int n,const char c=' '); + // @cmember Aggiunge spazi a destra fino alla dimensione indicata + TString& lpad(const int n,const char c=' '); // @cmember Giustifica l'oggetto stringa a destra TString& right_just(int n = -1, char c = ' ');