Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > C/C++: Общие вопросы > перебор строки по символам |
Автор: ZC1989 22.9.2006, 11:49 | ||
Вот опять вопрос по работе со строками… есть строка, надо её перебрать по сомволам и каждый символ сравнивать с данным, а уже от результата сравнения применять какое-либо действие… вот пример
компилируется нормально, но после запуска ошибка на сравнении символов, в strcmp(cch, "W") |
Автор: ZC1989 22.9.2006, 12:02 | ||
Я перепробовал всё, и все возможые типы переьерал и всё что только в голову приходило.... толку нету... ![]() |
Автор: Ignat 22.9.2006, 12:10 | ||||
Что такое символ, и что такое null-terminated string? А вообще, то что вам нужно вместо:
Написать просто:
|
Автор: Syberex 22.9.2006, 12:13 |
всё правильно, так и должно быть, ты эту W через cin введи, должно работать. |
Автор: Ignat 22.9.2006, 12:14 |
Кстати, учите ANSI C. То что вы делаете решается проще (и быстрее!) арифметикой указателей. |
Автор: ZC1989 22.9.2006, 12:16 |
каывчки.. мать их.... ![]() сейчас всё работает, СПАСИБО!!! я с этой функцией кавыряюсь со вчерашнего вечера ![]() |
Автор: albertn 22.9.2006, 16:22 | ||
То, что проще это спорно. Разве что меньше символов придется писать. То, что быстрее тоже спорно. Если компилить в VC++, то у него оптимизатор гораздо лучше работает на классических массивах, чем на указательных, и с указателями выходит медленнее (проверенно). На остальных компиляторах вполне возможно. |
Автор: Ignat 22.9.2006, 16:27 |
Я не проверял, цитировал K&R. Но если есть сомнения, почему бы и не прогнать тест ![]() //offtop: albertn, кстати, земляк. |
Автор: albertn 22.9.2006, 16:42 |
Я как-то одному типу пытался это утверждение доказать. В итоге написали несколько тестов, и все-же он оказался прав. ![]() |