- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
bool XIsEmptyString( LPCTSTR str )
{
CString s(str);
s.TrimLeft();
s.TrimRight();
return ( s.IsEmpty() || s == _T("") );
}
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+56
bool XIsEmptyString( LPCTSTR str )
{
CString s(str);
s.TrimLeft();
s.TrimRight();
return ( s.IsEmpty() || s == _T("") );
}
Кажется разработчика настиг приступ паранойи.
Взято из библиотека XMLite
bool XIsEmptyString( LPCTSTR str )
{
CString s(str);
s.TrimRight();
return s.IsEmpty();
}
А TrimRight работает быстрее чем TrimLeft, т.к. не нужно перемещать данные в памяти
> Достаточно одного Trim'а, т.к. если строка из одних пробелов, то любой из двух ее полностью съест.
Ага, я затупил, одного трима достаточно.
Какая задача - такое и говнецо. Раз подсунули сишную null terminated строку в параметрах, значит будем с ней работать по-сишному. Любому сишнику вполне понятен этот код.
А проблема с неоднозначностью Empty решается документацией.
Это да. Я хоть и не матёрый сишник, но проход по символам мне кажется более очевидным, чем какой-то trim. Или просто в первом коде не было подсветки.
Пихать строку в класс и вызывать на нём методы очень по-сишному.