Строки в C++ с помощью функций

Модераторы: Hawk, Romeo, Absurd, DeeJayC, WinMain

Ответить
Дмитри
Сообщения: 5
Зарегистрирован: 26 дек 2017, 10:04

26 дек 2017, 12:41

Задача 1. Написать и протестировать функцию STRP(str1,str2), которая возвращает указатель на первое вхождение символа из строки str2 в строку str1. Если ни один символ из строки str2 не входит в строку str1, то возвратить NULL.
Задача 2. Распечатать введенную строку, исключив из неё те символы, которые находятся между скобками ( ). Сами скобки не удалять. Если хотя бы одной скобки нет - сообщить об этом
Редактировать/удалить Редактировать Ответить с цитированием Ответить с цитированием
Аватара пользователя
Romeo
Сообщения: 3091
Зарегистрирован: 02 мар 2004, 17:25
Откуда: Крым, Севастополь
Контактная информация:

26 дек 2017, 12:48

Опять-таки говори, что именно не получается. За тебя писать код никто не станет.
Entites should not be multiplied beyond necessity @ William Occam
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
Слива
Сообщения: 133
Зарегистрирован: 19 мар 2016, 10:15

26 дек 2017, 19:17

Есть же готовая такая функция, по-моему, strstr(), кажется, называется. - по 1 заданию.
По 2 заданию поисковик в помощь - куча готовых программ. :D
Вот еще по 2 заданию:http://h-l-l.ru/publ/13-1-0-29
:D
Всем удачи, чуваки!!!!! :D
Аватара пользователя
Romeo
Сообщения: 3091
Зарегистрирован: 02 мар 2004, 17:25
Откуда: Крым, Севастополь
Контактная информация:

27 дек 2017, 09:10

Во-первых, strstr ищет подстроку, а здесь нужно найти любой символ, то есть должно работать, как strspn, но возвращать не количество, а указатель на первый найденный символ.

Во-вторых, даже если бы стандартная функция существовала, задание гласит "разработать", а это обозначает, что нужно написать алгоритм самому.
Entites should not be multiplied beyond necessity @ William Occam
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
Слива
Сообщения: 133
Зарегистрирован: 19 мар 2016, 10:15

27 дек 2017, 10:20

Ну пускай пишет - задание-то легкое. :D Честно говоря, они уже задрали делать тему и бросать ее.
Я на его месте 3-х-мерный движок пытался написать, а он даже такое простое задание не может сделать. Ну это вообще уже программисты пошли - ни энтузиазма, ни интереса. Надеюсь не забаните за оскорбления - я их все уже заранее удалил. :D
Общий принцип обоих задач: проходишь циклом for или еще лучше while(*str != 0) по строке и делаешь, что тебе нужно. Я же дал ссылку - там есть хорошая идея - вот эта самая. Остается только хорошо подумать и применить это все дело. :D
str - это указатель на символ, потом он инкрементируется(прибавляется); инициализация, что-то типа такого:

Код: Выделить всё

char *str;
char Stroka[200];
str = Stroka;  //ну как-то примерно так, не проверял в компиляторе - не знаю, работает-нет
В общем штудируйте C++ покрепче. Удачи вам всем пацаны!!!!!
Аватара пользователя
Romeo
Сообщения: 3091
Зарегистрирован: 02 мар 2004, 17:25
Откуда: Крым, Севастополь
Контактная информация:

27 дек 2017, 10:41

Большинство людей, которые создают и бросают тему всё-таки не имеют информатику основной специальностью. Экономисты там разные, например. Таким людям главное отмахаться от этой ненавистной дисциплины, побыстрее получить диплом и бежать бегом в какой-нибудь банк, сидеть в окошке и получать 10к рублей. Они даже не понимают, что вот этим ненавистным программированием можно получаться в десятки раз больше :)

А вот люди, у которых программирование - это основная специализация, их я действительно не понимаю. Наша специальность - это одна из немногих, где корочка не важна вообще. Мы, например, принимаем на работу людей даже без диплома, но со знаниями. Бумажка не важна, важны знания, которые человек покажет на собеседовании. Так что просить других людей сделать за тебя задание, это самому себе подписывать талон профнепригодности. Как жаль, что это понимают лишь единицы.
Entites should not be multiplied beyond necessity @ William Occam
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
Absurd
Сообщения: 1213
Зарегистрирован: 26 фев 2004, 13:24
Откуда: Pietari, Venäjä
Контактная информация:

27 дек 2017, 20:30

Слива писал(а):Я на его месте 3-х-мерный движок пытался написать, а он даже такое простое задание не может сделать.

А что там сложного? Типичный формат 3d это просто список координат треугольников. Нужно настроить матрицу перспективной проекции и просто передать эти все координаты в OpenGL. Видеокарта отсортирует все по глубине через Z-буфер и все будет пинцетно. Можно еще передать карту нормалей, карту рельефа и карту блеска, тогда у непосвященных челлюсть отвиснет.

Раньше-то нужно было заморачиваться чтобы лимитировать количество треугольников в сцене. В Quake1 был красивый алгоритм. Сейчас так будет даже медленнее, т.к. GPU это делает быстрее чем центральный проц.
2B OR NOT(2B) = FF
Ответить