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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> перебор строки по символам 
:(
    Опции темы
ZC1989
Дата 22.9.2006, 11:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 468
Регистрация: 17.7.2006
Где: Нижний Новгород; Россия

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



Вот опять вопрос по работе со строками… есть строка, надо её перебрать по сомволам и каждый символ сравнивать с данным, а уже от результата сравнения применять какое-либо действие… вот пример

Код

char *ch = "WEST";
char cch;

for(int a = 0; a < (int)strlen(ch); ++a)
{
    cch = ch[a]; // получаю символ
    cout << cch;

    // пытаюсь сравнить с "W"
    if(strcmp(cch, "W") ==0)
    {
        cout << “ – YES” << endl;
}else{
    cout << “ – NO” << endl;
}
}


компилируется нормально, но после запуска ошибка на сравнении символов, в strcmp(cch, "W")



--------------------
озарение настанет позже, когда поймём больше... (Сo. Stigmata)
PM MAIL ICQ   Вверх
Ignat
Дата 22.9.2006, 11:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Флудератор
****


Профиль
Группа: Экс. модератор
Сообщений: 4030
Регистрация: 19.4.2004
Где: غيليندزيك مدينة

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



Цитата(ZC1989 @  22.9.2006,  12:49 Найти цитируемый пост)
компилируется нормально, но после запуска ошибка на сравнении символов, в strcmp(cch, "W")


Логично. Скажите, какие аргументы принимает ф-ция strcmp? Каких типов?


--------------------
Теперь при чем :P
PM   Вверх
ZC1989
Дата 22.9.2006, 12:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 468
Регистрация: 17.7.2006
Где: Нижний Новгород; Россия

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



Код

int strcmp(const char*, const char*)


Я перепробовал всё, и все возможые типы переьерал и всё что только в голову приходило.... толку нету... smile 


--------------------
озарение настанет позже, когда поймём больше... (Сo. Stigmata)
PM MAIL ICQ   Вверх
Ignat
Дата 22.9.2006, 12:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Флудератор
****


Профиль
Группа: Экс. модератор
Сообщений: 4030
Регистрация: 19.4.2004
Где: غيليندزيك مدينة

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



Что такое символ, и что такое null-terminated string?

А вообще, то что вам нужно вместо:
Код

    if(strcmp(cch, "W") ==0)


Написать просто:
 
Код

   if(cch == 'W') //Обратите внимание на кавычки.



--------------------
Теперь при чем :P
PM   Вверх
Syberex
Дата 22.9.2006, 12:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



всё правильно, так и должно быть, ты эту W  через cin  введи, должно работать.
--------------------
whole power in artificial intelligences
PM MAIL ICQ   Вверх
Ignat
Дата 22.9.2006, 12:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Флудератор
****


Профиль
Группа: Экс. модератор
Сообщений: 4030
Регистрация: 19.4.2004
Где: غيليندزيك مدينة

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



Кстати, учите ANSI C.
То что вы делаете решается проще (и быстрее!) арифметикой указателей.


--------------------
Теперь при чем :P
PM   Вверх
ZC1989
Дата 22.9.2006, 12:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 468
Регистрация: 17.7.2006
Где: Нижний Новгород; Россия

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



каывчки.. мать их....  smile блин.... забыл!!!! надо перечитать вводные уроки к С++... всё этот ПХП вечно с понталыги сбивает...

сейчас всё работает, СПАСИБО!!! я с этой функцией кавыряюсь со вчерашнего вечера smile 


--------------------
озарение настанет позже, когда поймём больше... (Сo. Stigmata)
PM MAIL ICQ   Вверх
albertn
Дата 22.9.2006, 16:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(Ignat @  22.9.2006,  12:14 Найти цитируемый пост)
То что вы делаете решается проще (и быстрее!) арифметикой указателей. 

То, что проще это спорно. Разве что меньше символов придется писать.
То, что быстрее тоже спорно. Если компилить в VC++, то у него оптимизатор гораздо лучше работает на классических массивах, чем на указательных, и с указателями выходит медленнее (проверенно).
На остальных компиляторах вполне возможно.
PM WWW ICQ   Вверх
Ignat
Дата 22.9.2006, 16:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Флудератор
****


Профиль
Группа: Экс. модератор
Сообщений: 4030
Регистрация: 19.4.2004
Где: غيليندزيك مدينة

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



Цитата(albertn @  22.9.2006,  17:22 Найти цитируемый пост)
То, что быстрее тоже спорно.

Я не проверял, цитировал K&R.

Но если есть сомнения, почему бы и не прогнать тест  smile 

//offtop: albertn, кстати, земляк.





--------------------
Теперь при чем :P
PM   Вверх
albertn
Дата 22.9.2006, 16:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(Ignat @  22.9.2006,  16:27 Найти цитируемый пост)
Я не проверял, цитировал K&R.

Я как-то одному типу пытался это утверждение доказать. В итоге написали несколько тестов, и все-же он оказался прав.
 smile Ignat у тя вроде Москва написана.
PM WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

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

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

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

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


 




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


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

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