Клубове Дир.бг
powered by diri.bg
търси в Клубове diri.bg Разширено търсене

Вход
Име
Парола

Клубове
Dir.bg
Взаимопомощ
Горещи теми
Компютри и Интернет
Контакти
Култура и изкуство
Мнения
Наука
Политика, Свят
Спорт
Техника
Градове
Религия и мистика
Фен клубове
Хоби, Развлечения
Общества
Я, архивите са живи
Клубове Дирене Регистрация Кой е тук Въпроси Списък Купувам / Продавам 03:20 07.06.24 
Компютри и Интернет
   >> Програмисти
*Кратък преглед

Страници по тази тема: 1 | 2 | 3 | 4 | (покажи всички)
Тема Интересен номер на CStringнови  
Автор Pekoнcтpykтop (Нерегистриран)
Публикувано11.03.05 12:25




_AFX_INLINE TCHAR CString::operator[](int nIndex) const
{
// same as GetAt
ASSERT(nIndex >= 0);
ASSERT(nIndex < GetData()->nDataLength);
return m_pchData[nIndex];
}


Това хубаво, ама nDataLength не включва терминиращата нула. В резултат, една проверка от рода на str[0] == 0, която си е напълно логична и често използвана, гърми на поразия.





Тема Re: Интересен номер на CStringнови [re: Pekoнcтpykтop]  
Автор syscop (непознат)
Публикувано11.03.05 15:04



ASSERT(nIndex < GetData()->nDataLength);



Тема Много правилнонови [re: Pekoнcтpykтop]  
Автор Colombino (безработен)
Публикувано11.03.05 15:17



До сега не съм виждал функция за низове да брои нулата. Всички броят брой символи без 0 терминиращата нула. Нямаш право да достъпваш елементът с терминиращата нула.

Какво наричаш една проверка от рода на str[0]?

System Doctor Error:
Your girlfriend is pregnant.
(A)bort, (M)arry, (I)gnore?_


Тема Re: Много правилнонови [re: Colombino]  
Автор Pekoнcтpykтop (Нерегистриран)
Публикувано11.03.05 15:38



Що пък да нямам право?? Буфера е дължината на стринга + 1 по дефиниция, т.е. ако указателя е валиден, задължително има поне 1 символ дължина. В това се заключава идеята за проверка на празен стринг - ако първия символ е нула, значи е празен.





Тема Re: Много правилнонови [re: Pekoнcтpykтop]  
Автор Colombino (безработен)
Публикувано11.03.05 15:48



Ако искаш да работиш с буфера си има специални функции за работа с буфер. Ти тука работиш с класа и там хората ако искат могат да си нямат изоставаща нула даже.

Начи аз не разбирам мноо от MFC, ма първото което се сещам е, че имат оператор за z-string. Демек вместо

str[0]

моеш да си пишеш

*static_cast<TCHAR*>(str)


Редакция:

*static_cast<LPCTSTR>(str)

Ей затова мразя C-cast, щото е много силен и с него тва дето го бех написал щеше да мине.

System Doctor Error:
Your girlfriend is pregnant.
(A)bort, (M)arry, (I)gnore?_

Редактирано от Colombino на 11.03.05 15:54.



Тема Re: Интересен номер на CStringнови [re: Pekoнcтpykтop]  
АвторPaдo (Нерегистриран)
Публикувано11.03.05 16:18



Ако искаш да ръчкаш вътрешностите на CString-a - CString::GetBuffer/CString::ReleaseBuffer.

Иначе културния начин е GetLength и IsEmpty.



Тема Re: Много правилно [re: Colombino]  
Автор Pekoнcтpykтop (Нерегистриран)
Публикувано11.03.05 17:10



Абе как без нула, CString официално енкапсулира ANSI стринг.





Тема Re: Много правилно [re: Pekoнcтpykтop]  
Автор ~!@$%amp;^*()_+ (целия горен ред)
Публикувано11.03.05 17:32



хората са сложили IsEmpty() за тая проверка



Тема Re: Много правилно [re: Pekoнcтpykтop]  
Авторд (Нерегистриран)
Публикувано11.03.05 18:20



Като нещеш да ползваш класове и функции от рода на IsEmpty що ползваш С++ а не минеш на С?



Тема Re: Много правилно [re: Pekoнcтpykтop]  
Авторzaphod (Нерегистриран)
Публикувано11.03.05 18:30



не и през оператора [], ако искаш да достъпваш нулата, тогава първо кастни към LPCSTR и тогава слагай [], би трябвало да стане, макар че ме мързи да го пробвам.




Страници по тази тема: 1 | 2 | 3 | 4 | (покажи всички)
*Кратък преглед
Клуб :  


Clubs.dir.bg е форум за дискусии. Dir.bg не носи отговорност за съдържанието и достоверността на публикуваните в дискусиите материали.

Никаква част от съдържанието на тази страница не може да бъде репродуцирана, записвана или предавана под каквато и да е форма или по какъвто и да е повод без писменото съгласие на Dir.bg
За Забележки, коментари и предложения ползвайте формата за Обратна връзка | Мобилна версия | Потребителско споразумение
© 2006-2024 Dir.bg Всички права запазени.