- 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
German_1984 23.01.2015 09:53 # 0
bool XIsEmptyString( LPCTSTR str )
{
CString s(str);
s.TrimRight();
return s.IsEmpty();
}
bormand 23.01.2015 10:53 # +2
German_1984 23.01.2015 10:57 # 0
А TrimRight работает быстрее чем TrimLeft, т.к. не нужно перемещать данные в памяти
bormand 23.01.2015 10:58 # 0
> Достаточно одного Trim'а, т.к. если строка из одних пробелов, то любой из двух ее полностью съест.
Ага, я затупил, одного трима достаточно.
lorc 23.01.2015 14:16 # 0
bormand 23.01.2015 14:35 # +2
Какая задача - такое и говнецо. Раз подсунули сишную null terminated строку в параметрах, значит будем с ней работать по-сишному. Любому сишнику вполне понятен этот код.
А проблема с неоднозначностью Empty решается документацией.
lorc 23.01.2015 14:36 # 0
bormand 23.01.2015 14:39 # 0
1024-- 23.01.2015 15:36 # 0
Это да. Я хоть и не матёрый сишник, но проход по символам мне кажется более очевидным, чем какой-то trim. Или просто в первом коде не было подсветки.
Soul_re@ver 23.01.2015 15:37 # −2
Пихать строку в класс и вызывать на нём методы очень по-сишному.
bormand 23.01.2015 16:01 # 0
Soul_re@ver 23.01.2015 19:57 # 0
bormand 23.01.2015 20:29 # 0
guest8 01.05.2019 23:53 # −999