| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > Сравнивалка строк |
| Автор: GRON 29.11.2003, 15:05 | ||
| Только сильно не бейте, я еще совсем новичок... Знаю, что существует функция, сравнивающая две строки. Вот решил в образовательных целях написать свой выриант.
Почему-то не прет... Плиз, в чем ошибка (а их много...) Всем заранее спаибо. |
| Автор: GRON 29.11.2003, 18:03 |
| Да, и еще - просьба не пинать за то, что строки через массивы - плохой стиль программирования... Просто мне сейчас хочется именно так - через массивы... |
| Автор: _hunter 29.11.2003, 18:14 | ||
По-моему лучше писать так(если ты используеш <string>):
|
| Автор: _hunter 29.11.2003, 22:38 | ||
| сорри - тема обновилась во время ответа попробуй так:
|
| Автор: Ars 1.12.2003, 10:33 | ||
Наверное, ты имел ввиду if(szPassOr[n] == 0) |
| Автор: Unregistered 1.12.2003, 13:01 |
| во во, я тоже смотрю, проверка на конец строки какаято левая |
| Автор: GRON 1.12.2003, 14:12 | ||||
Во, теперь проперло. Ошибок было две - первую вы уже указали, а вторая - то, что у меня cin.getline(szPassword,3); стояло, поэтому он мне последний символ введенного BUM заменял на ноль-символ, а теперь для ноля есть отдельное место. Но теперь другая проблема: я пишу - BUM, он выводит следующее:
то есть фактически еще раз прокатывает меня по циклу проверки, не предлагая при этом новый ввод. ХЕЛП!! |
| Автор: Mellorn 3.12.2003, 15:35 |
| Народ, обясните мне -идиоту тупому... я уже давольно долго кодю на СИ но такого - for(;;) еще не видел что это такое? И не правильней ли будит использовать while char key=1; while(key==1) { .. // пароль введен верно key=0; } |
| Автор: GRON 3.12.2003, 22:14 |
| Мне всегда казалось, что for(;;) - бесконечный цикл (то есть он не проверяет никаких условий). Здесь я сделал его для того, чтобы после окончания проверки пароля программа не закрывалась, а начинала работать заново. |
| Автор: Mellorn 3.12.2003, 22:45 |
| Есть теория, что это поганые cin cout... попробуй с printf() scanf(); Мне кажется он после одного нормального цикла пролетает еще один, где строке присваивается '\0' отсюда приглашение "Введите пароль" , а потом сразу говорит то, что "\0" не рано "БАМ" -"НЕВЕРНО" |
| Автор: [ss]3L33T@ 5.12.2003, 14:08 |
| 2 Mellorn: for(;;) - это бесконечноый цикл. Если ты его используешь, то надо чтобы где-то в коде(внутри цикла) стоял break, иначе - цикл никогда не закончится. Ещё: цикл загружает процессор на 100%. |
| Автор: MaloY 5.12.2003, 20:47 | ||
ЭЭЭ, народ, а как лучше задавать строки... Соответствуясь с хорошим стилем программирования. И будет ли енто относиться к словам? |
| Автор: Mellorn 5.12.2003, 21:13 |
| смотри на первое сообщение huntera в этой теме... он там показал , при помощи <string.h> ,а со словами (если ты имеешь ввиду WORD) ни какой связи =) to[ss]3L33T@ спасибо тебе, не предсталяю тока нафиг это надо =) |