![]() |
|
Модераторы: bsa |
![]()
|
|
| JackYF |
|
|||
![]() полуавантюрист ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 5814 Регистрация: 28.8.2004 Где: страна тысячи озё р Репутация: 6 Всего: 162 |
выход за границы массива, у тебя 4 элемента, а не 5 -
|
|||
|
||||
| TGrey |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 294 Регистрация: 1.12.2007 Репутация: нет Всего: 1 |
Блин, точно.
Тем не мение не работает. Все равно получаю такое окно
|
||||
|
|||||
| archimed7592 |
|
|||
![]() Архимед ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2531 Регистрация: 12.6.2004 Где: Moscow Репутация: 6 Всего: 93 |
TGrey, код полностью покажи.
-------------------- If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas. © George Bernard Shaw |
|||
|
||||
| CppDevelopeR |
|
|||
![]() Experienced Expert ![]() ![]() Профиль Группа: Участник Сообщений: 390 Регистрация: 7.1.2008 Где: Moscow-City Репутация: нет Всего: 9 |
Строки... Как много в этом звуке! Вообще яб те посоветовал поупражняться в некоторых задачах про строки. Вот некоторые из них:
Выведите на экран все возможные символы с ASCII-кодами от 32 до 255 (символы с кодами до 32 являются служебными и их вывод на экран может привести к забавным последствиям) и их ASCII-коды. Формат вывода: сначала ASCII-код, затем символ, например, 32 33 ! 34 " 35 # (A) Напишите функцию bool IsDigit(unsigned char c), определяющую, является ли данный символ цифрой или нет. Напишите программу, которая получает на вход один символ и выводит строку yes, если символ является цифрой и строку no, в противном случае. (B) Программа получает на вход один символ. Если этот символ является строчной буквой латинского алфавита (то есть буквой от a до z), выведите вместо него аналогичную заглавную букву, иначе выведите тот же самый символ (такая операция называется "перевод в верхний регистр"). Для этого сделайте функцию unsigned char ToUpper(unsigned char c), которая переводит данный символ в верхний регистр. © Измените регистр символа: если он был латинской буквой: сделайте его заглавным, если он был строчной буквой и наоборот. Для этого напишите отдельную функцию, меняющую регистр символа. (D) Даны две строки. Определите, совпадают ли они сравнив их посимвольно. Напишите для этого функцию bool Compare(string S1, string S2). Вход: две строки. Выход: слово yes, если строки совпадают, слово no в противном случае. (E) Дана строка, содержащая пробелы. Найдите, сколько в нем слов (слово – это последовательность непробельных символов, слова разделены одним пробелом, первый и последний символ строки – не пробел). Вход: На вход подается несколько строк. Входная строка должна считываться методом getline. Выход: количество слов в первой из введенных строк. (F) Дана строка, содержащая пробелы. Найдите в ней самое длинное слово, выведите на экран это слово и его длину. Вход: одна строка, содержащая пробелы. Слова разделены ровно одним пробелом. Строка должна считываться методом getline (программа должна считывать только одну первую строку). Выход: самое длинное слово в строке и его длина. (G) По данной строке, определите, является ли она палиндромом (то есть можно ли прочесть ее наоборот, как, например, слово `топот'). Вход: одна строка без пробелов. Выход: yes, если слово является палиндромом, no в противном случае. (H) Дана строка. Известно, что она содержит ровно две одинаковые буквы. Найдите эти буквы. Вход: одна строка. Выход: одна буква, которая встречается в строке дважды. (I) Даны две строки. Определите, является ли первая строка подстрокой второй строки. Вход: две строки. Выход: слово yes, если первая строка является подстрокой второй строки, или слово no в противном случае. (J) Капитан Флинт зарыл клад на Острове сокровищ. Он оставил описание, как найти клад. Описание состоит из строк вида: "North 5", где первое слово – одно из "North", "South", "East", "West", а второе число – количество шагов, необходимое пройти в этом направлении. Напишите программу, которая по описанию пути к кладу определяет точные координаты клада, считая, что начало координат находится в начале пути, ось OX направлена на восток, ось OY – на север. Вход: последовательность строк указанного формата. Выход: координаты клада – два целых числа через пробел. Например, при вводе North 5 East 3 South 1 программа должна вывести координаты 3 4. (K) Дана строка, содержащая пробелы. Проверьте, является ли она палиндромом без учета пробелов (например, `аргентина манит негра'). Вход: одна строка, содержащая пробелы. Подряд может идти произвольное число пробелов. Выход: yes, если данная строка является палиндромом и no в противном случае. Даю небольшие подсказочки: Текстовую строку можно представить, как массив символов типа char, но в языке C++ для хранения текстовых строк был создан более удобный тип string. По сути, тип данных string и является массивом символов, например, если мы объявили переменную S как string S, а затем присвоили ей значение "школа" (текстовые строки заключаются в двойные кавычки), то мы можем обращаться к отдельным символам строки S, представляя S, как массив символов, например, S[0]=='ш', S[1]=='к' и т.д. Для того, чтобы узнать длину строки используется метод length(), вызываемый в виде S.length(). Строковые данные можно считывать с клавиатуры, выводить на экран, присвавать переменным типа string. Также строки можно складывать друг с другом: например, при сложении строк "Hello, " и "world!" получится строка "Hello, world!". Такая операция над строками называется конкатенацией. Основные приемы работы с объектами string проиллюстрированы в программе: string S, S1, S2; // Объявление трех строк cout<<"Как вас зовут? "; cin>>S1; // Считали строку S1 S2="Привет, "; // Присвоили строке значение S=S2+S1; // Использование конкатенации cout<<S<<endl; // Вывод строки на экран cout<<S.length(); // Длина строки S При считывании строк из входного потока считываются все символы, кроме символов–разделителей (пробелов, табуляций и новых строк), которые являются границами между строками. Например, если при выполнении следующей программы string S1, S2, S3; // объявили 3 строки cin>>S1>>S2>>S3; ввести текст `Мама мыла раму' (с произвольным количеством пробелов между словами), то в массив S1 будет записана строка "Мама", в S2 — "мыла", в S3 — "раму". Таким образом, организовать считывание всего файла по словам, можно следующим образом: string s; while(cin>>s) // Цикл пока считывание успешно { // Делаем необходимые действия } Если нужно считать строку со всеми пробелами, то необходимо использовать функцию getline следующим образом: string S; getline(cin,S); В данном случае если запустить эту программу и ввести строку "Мама мыла раму", то именно это значение и будет присвоено строке S. Считать же весь входной поток по строкам можно при помощи следующего кода: string s; while ( getline(cin,S) ) // Цикл пока считывание успешно { // Делаем необходимые действия } |
|||
|
||||
| JackYF |
|
|||
![]() полуавантюрист ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 5814 Регистрация: 28.8.2004 Где: страна тысячи озё р Репутация: 6 Всего: 162 |
CppDevelopeR, легче было ссылку дать.
Кроме того, каким боком пост относится к обсуждаемой теме? |
|||
|
||||
| CppDevelopeR |
|
|||
![]() Experienced Expert ![]() ![]() Профиль Группа: Участник Сообщений: 390 Регистрация: 7.1.2008 Где: Moscow-City Репутация: нет Всего: 9 |
Ссылку не дам, ибо писал сам! К чему мир катица? Неужели теперь все длинные фразы будут считаться скопированными аткуда то? [censored 5] |
|||
|
||||
| archimed7592 |
|
||||
![]() Архимед ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2531 Регистрация: 12.6.2004 Где: Moscow Репутация: 6 Всего: 93 |
Добавлено через 3 минуты и 25 секунд
Мамой поклясться слабо? -------------------- If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas. © George Bernard Shaw |
||||
|
|||||
| CppDevelopeR |
|
|||
![]() Experienced Expert ![]() ![]() Профиль Группа: Участник Сообщений: 390 Регистрация: 7.1.2008 Где: Moscow-City Репутация: нет Всего: 9 |
Бугога, жжош =Ъ!+1) Клянусь мамой! Только этим ничего не дакажеш, вдруг я держал пальцы крестиком??? |
|||
|
||||
| JackYF |
|
|||
![]() полуавантюрист ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 5814 Регистрация: 28.8.2004 Где: страна тысячи озё р Репутация: 6 Всего: 162 |
Неужели? А почему вот здесь, внизу страницы я вижу те же самые задания? Лгать нехорошо. +1, Добавлено через 39 секунд это уже не смешно, это грустно. |
|||
|
||||
| archimed7592 |
|
|||
![]() Архимед ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2531 Регистрация: 12.6.2004 Где: Moscow Репутация: 6 Всего: 93 |
Вот оригинал: http://server.179.ru/tasks/cpp/strings.html
Да ничего доказывать не нужно было. И так понятно, что человек не знающий как пишется слово "докажешь" не может написать такое количество грамматически правильного текста. Ты хоть и виртуально, но проклял самое дорогое, что есть у человека в жизни - маму. Не позорься.
-------------------- If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas. © George Bernard Shaw |
|||
|
||||
![]()
|
| Правила форума "C/C++: Для новичков" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |