Главная страница Случайная страница Разделы сайта АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
💸 Как сделать бизнес проще, а карман толще?
Тот, кто работает в сфере услуг, знает — без ведения записи клиентов никуда. Мало того, что нужно видеть свое раписание, но и напоминать клиентам о визитах тоже.
Проблема в том, что средняя цена по рынку за такой сервис — 800 руб/мес или почти 15 000 руб за год. И это минимальный функционал.
Нашли самый бюджетный и оптимальный вариант: сервис VisitTime.⚡️ Для новых пользователей первый месяц бесплатно. А далее 290 руб/мес, это в 3 раза дешевле аналогов. За эту цену доступен весь функционал: напоминание о визитах, чаевые, предоплаты, общение с клиентами, переносы записей и так далее. ✅ Уйма гибких настроек, которые помогут вам зарабатывать больше и забыть про чувство «что-то мне нужно было сделать». Сомневаетесь? нажмите на текст, запустите чат-бота и убедитесь во всем сами! Листинг 12.9. Заполнение массива
1: //Листинг 12.9. Использование метода cin.get() 2: 3: #include < iostream.h> 4: 5: int main() 6: { 7: char buffer[80]; 8: cout < < " Enter the string: "; 9: cin.get(buffer, 79); // ввод завершается после 79 символа или символа разрыва строки 10: cout < < " Here's the buffer: " < < buffer < < endl; 11: return 0; 12: }
Результат: Enter the string: Hello World Here's the buffer: Hello World
Анализ: В строке 9 осуществляется вызов метода cin.get(). Буфер ввода, заданный в строке 7, передается в функцию как первый аргумент. Второй аргумент задает максимальную длину строки, равную 79 символам. Допускается ввод только 79 символов, поскольку последний элемент массива отводится на концевой нулевой символ строки. Устанавливать третий аргумент не обязательно. В большинстве случаев в качестве разделительного символа подходит задаваемый по умолчанию символ разрыва строки.
Функции strcpy() и strncpy()
Язык C++ унаследовал от С библиотечные функции, выполняющие операции над строками. Среди множества доступных функций есть две, которые осуществляют копирование одной строки в другую. Это функции strcpy() и strncpy(). Функция strcpy() копирует строку целиком в указанный буфер, как показано в листинге 12.10. Листинг 12.10. Использование функции strcpy() 1: #include < iostream.h> 2: #include < string.h> 3: int main() 4: { 5: char String1[] = " No man is an island"; 6: char String2[80]; 7: 8: strcpy(String2, String1); 9: 10: cout < < " String1: " < < String1 < < endl; 11: cout < < " String2: " < < String2 < < endl; 12: return 0; 13: }
Результат: String1: No man is an island String2: No man is an island
Анализ: Файл заголовка string.h включается в программу в строке 2. Этот файл содержит прототип функции strcpy(). В качестве аргументов функции указываются два массива символов, первый из которых является целевым, а второй — массивом источника данных. Если массив-источник окажется больше целевого массива, то функция strcpy() введетданные за пределы массива. Чтобы предупредить подобную ошибку, в этой библиотеке функций содержится еще одна функция копирования строк: strncpy(). Эта функция копирует ряд символов, не превышающий длины строки, заданной в целевом массиве. Функция strncpy() также прерывает копирование, если ей повстречается символ разрыва строки. Использование функции strncpy() показано в листинге 12.11. Листинг 12.11. Использование функции strncpy() 1: #include < iostream.h> 2: #include < string.h> 3: int main() 4: { 5: const int MaxLength = 80; 6: char String1[] = " No man is an island"; 7: char String2[MaxLength+1]; 8: 9: 10: strncpy(String2, String1, MaxLength); 11: 12: cout < < " String1: " < < String1 < < endl; 13: cout < < " String2: " < < String2 < < endl; 14: return 0; 15: }
Результат: String1: No man is an island String2: No man is an island
Анализ: В строке 10 программа вместо функции strcpy() используется функцию strncpy(), третий параметр MaxLength которой задает максимальную длину копируемой строки. Размер массива String2 задан как MaxLength+1. Дополнительный элемент потребовался для концевого нулевого символа строки, который добавляется автоматически обеими функциями — strcpy() и strncpy().
|