![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| Syberex |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 208 Регистрация: 15.9.2006 Где: Украина Репутация: нет Всего: нет |
Необходимо сравинить куски памяти, там находятся строки, а вернее сказать символы, например 2 массива по 2 мегобайта, в них только символы причём с учётом регистра, без всяких там энтеров и нуль символов, необходимо сравнить их. Знаю функцию
char x[100]="DenisPrivetDenisPrivetDenisPrivetDenisPrivet"; char y[100]="DenisPrivetDenisPrivetDenisPrivetDenisPrivet"; bool z=0; //extern PACKAGE bool __fastcall CompareMem(void * P1, void * P2, int Length); z=CompareMem(&x,&y,sizeof x); cout<<z<<endl; она сравнивает куски памяти, но я хочу, чтоб сравнивала без учёта регистра, и чтоб искала в памяти, хочу чтоб формат был CompareMem(&x,&y,sizeof x); на подоби такого, нихочу никаких классов ивсяких наворотов из кучи объявлений, хочу просто два указателя и длина. Мож кто знает? --------------------
whole power in artificial intelligences |
|||
|
||||
| sergejzr |
|
|||
![]() Un salsero Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: 19 Всего: 360 |
Придётся ручками писать.
|
|||
|
||||
| Syberex |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 208 Регистрация: 15.9.2006 Где: Украина Репутация: нет Всего: нет |
Ручками медленно работать будет, наверно, я думаю наверняка у кого нибуть есть что подобное, можно даже и ассемблерской вставочкой.
--------------------
whole power in artificial intelligences |
|||
|
||||
| Romikgy |
|
|||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: 8 Всего: 146 |
stricmp
-------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. |
|||
|
||||
| sergejzr |
|
|||
![]() Un salsero Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: 19 Всего: 360 |
Точно... а я понял сперва, что всё кроме букв надо игнорировать
|
|||
|
||||
| Syberex |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 208 Регистрация: 15.9.2006 Где: Украина Репутация: нет Всего: нет |
не походит то что вы написали
--------------------
whole power in artificial intelligences |
|||
|
||||
| Romikgy |
|
|||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: 8 Всего: 146 |
-------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. |
|||
|
||||
| Oleg_Ci |
|
|||
![]() Friend ![]() ![]() Профиль Группа: Участник Сообщений: 485 Регистрация: 28.5.2006 Где: Новосиб.обл. Репутация: 3 Всего: 30 |
|
|||
|
||||
| Romikgy |
|
|||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: 8 Всего: 146 |
Олег4,
имхо проще делать копирование в промежуточные массивы с добавлением в конце нуля и сравнением -------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. |
|||
|
||||
| sergejzr |
|
|||
![]() Un salsero Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: 19 Всего: 360 |
strincmp и нуль не нужен.
|
|||
|
||||
| Romikgy |
|
|||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: 8 Всего: 146 |
согласен , но чет такого не видел , хотя и сильно не присматривался -------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. |
|||
|
||||
| Syberex |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 208 Регистрация: 15.9.2006 Где: Украина Репутация: нет Всего: нет |
int strnicmp(const char *s1, const char *s2, size_t n)
не компилится! --------------------
whole power in artificial intelligences |
|||
|
||||
| sergejzr |
|
|||
![]() Un salsero Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: 19 Всего: 360 |
"не компилится! " бывает разные. Ты пиши, что компилер говорит.
http://mcntp.sourceforge.net/man/stricmp.3.html http://www.delorie.com/djgpp/doc/libc/libc_770.html |
|||
|
||||
| dumb |
|
|||
![]() sceloglauxalbifacies ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2929 Регистрация: 16.6.2006 Репутация: 8 Всего: 158 |
_strnicmp
ps. "не компилится!"... |
|||
|
||||
| sergejzr |
|
|||
![]() Un salsero Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: 19 Всего: 360 |
ОФФТОП
"Вот! Я жму, жму, а он не берёт" © Услышал этот багрепорт сисадмину от женщины за стойкой при регистрации в московской гостиннице |
|||
|
||||
| Syberex |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 208 Регистрация: 15.9.2006 Где: Украина Репутация: нет Всего: нет |
char x[100]="DenisPrivetDenisPrivetDenisPrivetDenisPrivet";
char y[100]="DenisPrivetDenisPrivetDenisPrivetDenisPrivet"; int z=0; z=strnicmp(&x,&y,sizeof x); cout<<z<<endl; ошибка такая Build [C++ Error] Intellect.cpp(38): E2034 Cannot convert 'char ( *)[100]' to 'const char *' [C++ Error] Intellect.cpp(38): E2342 Type mismatch in parameter '__s1' (wanted 'const char *', got 'char ( *)[100]') [C++ Error] Intellect.cpp(38): E2034 Cannot convert 'char ( *)[100]' to 'const char *' [C++ Error] Intellect.cpp(38): E2342 Type mismatch in parameter '__s2' (wanted 'const char *', got 'char ( *)[100]') --------------------
whole power in artificial intelligences |
|||
|
||||
| sergejzr |
|
|||
![]() Un salsero Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: 19 Всего: 360 |
Так пиши.
char *x="DenisPrivetDenisPrivetDenisPrivetDenisPrivet"; char *y="DenisPrivetDenisPrivetDenisPrivetDenisPrivet"; Если не знаешь почему, создай новую тему в "Центре помощи" или "С++ для начинающих". А этот вопрос уже решён. Добавлено @ 12:31 |
|||
|
||||
| Syberex |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 208 Регистрация: 15.9.2006 Где: Украина Репутация: нет Всего: нет |
а мне не нужен константный массив, я динамический сравниваю, и причём только выборочные куски, а все отвечают чёто только константные функции.
--------------------
whole power in artificial intelligences |
|||
|
||||
| sergejzr |
|
|||
![]() Un salsero Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: 19 Всего: 360 |
Syberex, как я уже сказал, если не знаешь, что такое const, спрашивай в разделе для начинающих. Твои догадки не верны.
|
|||
|
||||
| Syberex |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 208 Регистрация: 15.9.2006 Где: Украина Репутация: нет Всего: нет |
если бы мне надо было так
char *x="DenisPrivetDenisPrivetDenisPrivetDenisPrivet"; char *y="DenisPrivetDenisPrivetDenisPrivetDenisPrivet"; яб так и сделал, но если массив изменяется свыше 1000 раз в секунду, такие объявления не уместны. --------------------
whole power in artificial intelligences |
|||
|
||||
| sergejzr |
|
|||
![]() Un salsero Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: 19 Всего: 360 |
||||
|
||||
| Romikgy |
|
|||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: 8 Всего: 146 |
Это сообщение отредактировал(а) Romikgy - 27.9.2006, 13:03 -------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. |
|||
|
||||
| sergejzr |
|
|||
![]() Un salsero Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: 19 Всего: 360 |
Romikgy, это не хороший совет. Потому что char * и char[] это структурно уже не одно и тоже. И в каждом компилере char[] реализовано по своему.
Вообще. [] нужно только если чтото хочешь написать на скорую руку, или лень с выделением памяти заморачиваться. Но логику программы на этом строить не стоит.. Добавлено @ 13:06 И вместо (const char *) пойдёт просто (char *) Но, как я уже говорил, это другая тема. Возможно поиск поможет. |
|||
|
||||
| Syberex |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 208 Регистрация: 15.9.2006 Где: Украина Репутация: нет Всего: нет |
компилится чудестно, сенкс
--------------------
whole power in artificial intelligences |
|||
|
||||
| sergejzr |
|
|||
![]() Un salsero Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: 19 Всего: 360 |
char **x=new char *[5];
Это было правильно
Нет конечно. Для этого я и привёл пример с дин. массивом. Один раз у тебя массив элементов char[][] а другой раз массив из указателей на другие массивы char** которые где угодно могут располагаться. Добавлено @ 14:59 К нужному тебе, чтобы компилилось, но на самом деле, как я и писал, указательна массив и массив - разные вещи. |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |