From b38c53ddacfd749e87aa2b34d2010af39836a27f Mon Sep 17 00:00:00 2001 From: D-AIRY <admin@ds-servers.com> Date: Mon, 30 Sep 2019 11:27:13 +0300 Subject: [PATCH] some refactor --- string.cpp | 74 +++++++++++++++++++++++------------------------------- string.h | 4 +-- 2 files changed, 33 insertions(+), 45 deletions(-) diff --git a/string.cpp b/string.cpp index a2becb9..db8bdad 100644 --- a/string.cpp +++ b/string.cpp @@ -64,8 +64,8 @@ String::String(const char * str) { m_szString = new char[strlen(str) + 1]; //sprintf(m_szString,"%s",str); - memcpy(m_szString, str, strlen(str)); - m_szString[strlen(str)] = 0; + memcpy(m_szString, str, strlen(str) + 1); + //m_szString[strlen(str)] = 0; } String::String(char sym) @@ -78,56 +78,50 @@ String::String(char sym) String::String(int num) { - char * tmp = new char[64]; + char tmp[64]; sprintf(tmp, "%d", num); m_szString = new char[strlen(tmp) + 1]; memcpy(m_szString, tmp, strlen(tmp) + 1); - SAFE_DELETE_A(tmp); } String::String(WORD num) { - char * tmp = new char[64]; + char tmp[64]; sprintf(tmp, "%u", num); m_szString = new char[strlen(tmp) + 1]; memcpy(m_szString, tmp, strlen(tmp) + 1); - SAFE_DELETE_A(tmp); } String::String(DWORD num) { - char * tmp = new char[64]; + char tmp[64]; sprintf(tmp, "%lu", num); m_szString = new char[strlen(tmp) + 1]; memcpy(m_szString, tmp, strlen(tmp) + 1); - SAFE_DELETE_A(tmp); } String::String(const UINT num) { - char * tmp = new char[64]; + char tmp[64]; sprintf(tmp, "%lu", num); m_szString = new char[strlen(tmp) + 1]; memcpy(m_szString, tmp, strlen(tmp) + 1); - SAFE_DELETE_A(tmp); } String::String(long num) { - char * tmp = new char[64]; + char tmp[64]; sprintf(tmp, "%ld", num); m_szString = new char[strlen(tmp) + 1]; memcpy(m_szString, tmp, strlen(tmp) + 1); - SAFE_DELETE_A(tmp); } String::String(double num) { - char * tmp = new char[64]; + char tmp[64]; sprintf(tmp, "%G", num); m_szString = new char[strlen(tmp) + 1]; memcpy(m_szString, tmp, strlen(tmp) + 1); - SAFE_DELETE_A(tmp); } String::String(bool bf) @@ -1157,7 +1151,6 @@ StringW::StringW() StringW::StringW(const WCHAR * str) { - m_szString = new WCHAR[wcslen(str) + 1]; //sprintf(m_szString,"%s",str); memcpy(m_szString, str, sizeof(WCHAR) * wcslen(str)); @@ -1174,47 +1167,42 @@ StringW::StringW(WCHAR sym) StringW::StringW(int num) { - WCHAR * tmp = new WCHAR[64]; + WCHAR tmp[64]; swprintf(tmp, 64, L"%d", num); m_szString = new WCHAR[wcslen(tmp) + 1]; memcpy(m_szString, tmp, sizeof(WCHAR) * (wcslen(tmp) + 1)); - SAFE_DELETE_A(tmp); } StringW::StringW(WORD num) { - WCHAR * tmp = new WCHAR[64]; + WCHAR tmp[64]; swprintf(tmp, 64, L"%hu", num); m_szString = new WCHAR[wcslen(tmp) + 1]; memcpy(m_szString, tmp, sizeof(WCHAR) * (wcslen(tmp) + 1)); - SAFE_DELETE_A(tmp); } StringW::StringW(DWORD num) { - WCHAR * tmp = new WCHAR[64]; + WCHAR tmp[64]; swprintf(tmp, 64, L"%lu", num); m_szString = new WCHAR[wcslen(tmp) + 1]; memcpy(m_szString, tmp, sizeof(WCHAR) * (wcslen(tmp) + 1)); - SAFE_DELETE_A(tmp); } StringW::StringW(long num) { - WCHAR * tmp = new WCHAR[64]; + WCHAR tmp[64]; swprintf(tmp, 64, L"%ld", num); m_szString = new WCHAR[wcslen(tmp) + 1]; memcpy(m_szString, tmp, sizeof(WCHAR) * (wcslen(tmp) + 1)); - SAFE_DELETE_A(tmp); } StringW::StringW(double num) { - WCHAR * tmp = new WCHAR[64]; + WCHAR tmp[64]; swprintf(tmp, 64, L"%G", num); m_szString = new WCHAR[wcslen(tmp) + 1]; memcpy(m_szString, tmp, sizeof(WCHAR) * (wcslen(tmp) + 1)); - SAFE_DELETE_A(tmp); } StringW::StringW(bool bf) @@ -1531,63 +1519,63 @@ StringW & StringW::operator+=(const bool & bf) StringW StringW::operator-(const StringW & str) { StringW newStr = this; - newStr.replace(str, "", 0); + newStr.replace(str, L"", 0); return(newStr); } StringW StringW::operator-(const WCHAR * str) { StringW newStr = this; - newStr.replace(str, "", 0); + newStr.replace(str, L"", 0); return(newStr); } StringW StringW::operator-(const WCHAR & sym) { StringW newStr = this; - newStr.replace(sym, "", 0); + newStr.replace(sym, L"", 0); return(newStr); } StringW StringW::operator-(const int & num) { StringW newStr = this; - newStr.replace(num, "", 0); + newStr.replace(num, L"", 0); return(newStr); } StringW StringW::operator-(const WORD & num) { StringW newStr = this; - newStr.replace(num, "", 0); + newStr.replace(num, L"", 0); return(newStr); } StringW StringW::operator-(const DWORD & num) { StringW newStr = this; - newStr.replace(num, "", 0); + newStr.replace(num, L"", 0); return(newStr); } StringW StringW::operator-(const long & num) { StringW newStr = this; - newStr.replace(num, "", 0); + newStr.replace(num, L"", 0); return(newStr); } StringW StringW::operator-(const double & num) { StringW newStr = this; - newStr.replace(num, "", 0); + newStr.replace(num, L"", 0); return(newStr); } StringW StringW::operator-(const bool & bf) { StringW newStr = this; - newStr.replace(bf, "", 0); + newStr.replace(bf, L"", 0); return(newStr); } @@ -1595,55 +1583,55 @@ StringW StringW::operator-(const bool & bf) StringW & StringW::operator-=(const StringW & str) { - replace(str, "", 0); + replace(str, L"", 0); return(*this); } StringW & StringW::operator-=(const WCHAR * str) { - replace(str, "", 0); + replace(str, L"", 0); return(*this); } StringW & StringW::operator-=(const WCHAR & sym) { - replace(sym, "", 0); + replace(sym, L"", 0); return(*this); } StringW & StringW::operator-=(const int & num) { - replace(num, "", 0); + replace(num, L"", 0); return(*this); } StringW & StringW::operator-=(const WORD & num) { - replace(num, "", 0); + replace(num, L"", 0); return(*this); } StringW & StringW::operator-=(const DWORD & num) { - replace(num, "", 0); + replace(num, L"", 0); return(*this); } StringW & StringW::operator-=(const long & num) { - replace(num, "", 0); + replace(num, L"", 0); return(*this); } StringW & StringW::operator-=(const double & num) { - replace(num, "", 0); + replace(num, L"", 0); return(*this); } StringW & StringW::operator-=(const bool & bf) { - replace(bf, "", 0); + replace(bf, L"", 0); return(*this); } diff --git a/string.h b/string.h index 592e937..ee4fde9 100644 --- a/string.h +++ b/string.h @@ -34,7 +34,7 @@ public: String(const UINT num); String(const long num); String(const double num); - String(const bool bf); + explicit String(bool bf); String(const String & str); String(const String * str); @@ -230,7 +230,7 @@ public: StringW(const unsigned long num); StringW(const long num); StringW(const double num); - StringW(const bool bf); + explicit StringW(bool bf); StringW(const StringW & str); StringW(const StringW * str); -- GitLab