Модераторы: Daevaorn

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Сравнение и поиск кусков в памяти, текст без \0 и \n в памяти 
V
    Опции темы
Syberex
Дата 27.9.2006, 12:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 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
PM MAIL ICQ   Вверх
sergejzr
Дата 27.9.2006, 12:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: 19
Всего: 360



Так пиши. 

char *x="DenisPrivetDenisPrivetDenisPrivetDenisPrivet";
char *y="DenisPrivetDenisPrivetDenisPrivetDenisPrivet";

Если не знаешь почему, создай новую тему в "Центре помощи" или "С++ для начинающих". А этот вопрос уже решён.

Добавлено @ 12:31 



--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
Syberex
Дата 27.9.2006, 12:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 208
Регистрация: 15.9.2006
Где: Украина

Репутация: нет
Всего: нет



а мне не нужен константный массив, я динамический сравниваю, и причём только выборочные куски, а все отвечают чёто только константные функции.
--------------------
whole power in artificial intelligences
PM MAIL ICQ   Вверх
sergejzr
Дата 27.9.2006, 12:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: 19
Всего: 360



Syberex, как я уже сказал, если не знаешь, что такое const, спрашивай в разделе для начинающих. Твои догадки не верны.


--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
Syberex
Дата 27.9.2006, 12:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 208
Регистрация: 15.9.2006
Где: Украина

Репутация: нет
Всего: нет



если бы мне надо было так 
char *x="DenisPrivetDenisPrivetDenisPrivetDenisPrivet";
char *y="DenisPrivetDenisPrivetDenisPrivetDenisPrivet";

яб так и сделал, но если массив изменяется свыше 1000 раз в секунду, такие объявления не уместны.
--------------------
whole power in artificial intelligences
PM MAIL ICQ   Вверх
sergejzr
Дата 27.9.2006, 12:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: 19
Всего: 360



Цитата(Syberex @  27.9.2006,  10:44 Найти цитируемый пост)
если массив изменяется свыше 1000 раз в секунду, такие объявления не уместны. 

Какая разница?
пиши char *x=new char[100];
strcopy("DenisPrivetDenisPrivetDenisPrivetDenisPrivet",x); //итд



--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
Romikgy
Дата 27.9.2006, 13:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: 8
Всего: 146



Цитата(Syberex @  27.9.2006,  11:28 Найти цитируемый пост)
strnicmp(&x,&y,sizeof x);

Код

strnicmp((const char *)&x[0],(const char *)&y[0],sizeof x);


Это сообщение отредактировал(а) Romikgy - 27.9.2006, 13:03


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
sergejzr
Дата 27.9.2006, 13:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: 19
Всего: 360



Romikgy, это не хороший совет. Потому что char * и char[] это структурно уже не одно и тоже. И в каждом компилере char[] реализовано по своему. 

Вообще. [] нужно только если чтото хочешь написать на скорую руку, или лень с выделением памяти заморачиваться. Но логику программы на этом строить не стоит..

Добавлено @ 13:06 
И вместо (const char *) пойдёт просто (char *)
Но, как я уже говорил, это другая тема. Возможно поиск поможет.


--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
Syberex
Дата 27.9.2006, 13:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 208
Регистрация: 15.9.2006
Где: Украина

Репутация: нет
Всего: нет



компилится чудестно, сенкс
--------------------
whole power in artificial intelligences
PM MAIL ICQ   Вверх
sergejzr
Дата 27.9.2006, 14:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: 19
Всего: 360



char **x=new char *[5];

Это было правильно smile Две звёздочки забыл.

Цитата(Romikgy @  27.9.2006,  12:45 Найти цитируемый пост)
имхо все массивы в памяти преобразуются в одномерный массив, а уж динамика это или статика имхо для проги все равно , разница где это размещается, имхо

Нет конечно. Для этого я и привёл пример с дин. массивом. Один раз у тебя массив элементов char[][] а другой раз массив из указателей на другие массивы char** которые где угодно могут располагаться.

Добавлено @ 14:59 
Цитата(Romikgy @  27.9.2006,  12:45 Найти цитируемый пост)
имхо я не обманывал , а преобразовал к нужному типу.

К нужному тебе, чтобы компилилось, но на самом деле, как я и писал, указательна массив и массив - разные вещи.


--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1591 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.