| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Для новичков > Обработка текста |
| Автор: Phoenix13 12.3.2010, 11:22 | ||
Как сделать так чтобы инструкция if проверяла не конкретную по счёту букву а все сообщение на наличие в ней искомой буквы?
Может как-то через цикл for это можно сделать? |
| Автор: bsa 12.3.2010, 11:32 |
| можно конечно, если хочется изобрести велосипед. А если не хочется, то можно использовать функции strchr() (для си строк) и std::find или std::string::find. Кстати, подключать одновременно string.h и cstring смысла нет никакого, так как cstring сам подключает string.h и заворачивает стандартные функции в пространство имен std. ты используешь, setlocale, но у тебя нет #include <clocale>. |
| Автор: Phoenix13 12.3.2010, 11:51 |
| Я новичек, если можно пример. И насчет Setlocate, почему cout выводит слова на русском в консоли, а когда я вписываю на русском что-либо, то он возвращает иероглифы? Можно ли это исправить? |
| Автор: bsa 12.3.2010, 11:56 |
| пример чего? не знаешь как вызывать функцию с двумя параметрами, один из которых строка, а второй символ? Или ты вообще не знаешь, сколько у нее параметров? http://www.manpagez.com/man/3/strchr/ |
| Автор: Phoenix13 12.3.2010, 12:03 |
| С функциями незнаком(( |
| Автор: Ozerich 12.3.2010, 12:09 | ||
Вот тебе самописная функция поиска и цикл for
|
| Автор: Phoenix13 12.3.2010, 12:33 | ||
| Ozerich , спасибо!! find_letter это название функции которая начнёт выполняться в if.
Как работает само (message,later)? Я имею ввиду и алгоритм и синтаксис. |
| Автор: Ozerich 12.3.2010, 12:37 | ||
это параметы которые передаются в функцию. 1-ый параметр это само сообщение, 2-ой - буква. Функция возвращает true, если буква содержится в сообщение, иначе возвращает false |
| Автор: Phoenix13 12.3.2010, 12:43 | ||||||
А здесь
И ещё это не очень аонятно
Explain, please) |
| Автор: Ozerich 12.3.2010, 12:48 | ||||
Это уже сама функция. Здесь : if(find_letter(message,letter)) функция вызывается а тут : bool find_letter(string &s, char a) идет описание её(что она должна делать)
Проходим циклом по каждому символу в строке и во второй строке условие : Если текущий символ равен тому который мы ищем то функция завершается успешно |
| Автор: Phoenix13 12.3.2010, 12:59 | ||||
| А можно чуть по подробнее? Про то что циклом проходим понятно. Непонятно как работает это:
и вот это:
|
| Автор: Ozerich 12.3.2010, 13:07 |
| i < s.size(); значение переменной i меньше длины текста (string &s, char a) это параметры для функции. первый параметр s типа string(строка)(амперсанд можно убрать) и второй параметр а типа char(символ) |
| Автор: Phoenix13 12.3.2010, 13:18 |
| как я понимаю size() стандартная функция, которая определяет длину строки? |
| Автор: Ozerich 12.3.2010, 13:20 | ||
Да. Так и есть. Но эта функция только в STL строках В С-строках функция strlen(s) |
| Автор: Phoenix13 12.3.2010, 13:53 |
| А в чём разница между строками С и STL |
| Автор: Ozerich 12.3.2010, 14:04 | ||
А тебе не надоело? Может возьмёшь учебник и почитаешь, а то задаёшь такие вопросы, ответы на которых на первых страницах учебника написаны. Последний раз отвечаю на подобного рода вопросы: С - строка это массив символов оканчивающийся '\0'. В С++ есть STL, библиотека которая облегчает кодинг на С++. Там есть реализация строк. Вот это и называется STL строка. В следующий раз буду отправлять к учебнику и гуглу А если хочешь чтобы тебе катали лабу одну за другой без твоего участия, то готовь WMZ и стучи в асю |
| Автор: Phoenix13 13.3.2010, 02:00 |
| спасибо) |