0 / 0 / 0
Регистрация: 16.01.2014
Сообщений: 20
|
|
1 | |
Заменить каждую последовательность, содержащую более одного пробела, на один пробел16.01.2014, 04:26. Показов 7747. Ответов 34
Метки нет (Все метки)
В заданной строке заменить каждую последовательность, содержащую более одного пробела, на один
пробел. Например: "a bcd ef . gh 90" - "a bcd ef . gh 90" Всё что я на данный момент смог, это создать строку... Подскажите
0
|
16.01.2014, 04:26 | |
Ответы с готовыми решениями:
34
Заменить в строке каждую последовательность из двух и более пробелов на один пробел Каждую группу из n последовательно стоящих символов ‘’ (пробел) и '\t' (табуляция) заменить на один пробел Заменить в строке каждую серию подряд идущих пробелов на один пробел Сформировать новую строку, заменив в исходной строке каждую последовательность пробелов на один пробел |
Форумчанин
8215 / 5045 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
|
||||||
16.01.2014, 04:32 | 2 | |||||
1
|
0 / 0 / 0
Регистрация: 16.01.2014
Сообщений: 20
|
|
16.01.2014, 04:37 [ТС] | 3 |
Простите, вы бы не могли пояснить, что означает std: и структуру работы. Я "умею" писать только с помощью printf - scanf
0
|
390 / 365 / 111
Регистрация: 03.02.2013
Сообщений: 1,120
|
|
16.01.2014, 04:40 | 4 |
std - это область видимости стандартной библиотеки C++ иначе называемой STL
а свои printf/scanf засуньте в ... Си, тут C++
0
|
Неэпический
|
|
16.01.2014, 04:40 | 5 |
0
|
0 / 0 / 0
Регистрация: 16.01.2014
Сообщений: 20
|
|
16.01.2014, 04:41 [ТС] | 6 |
0
|
0 / 0 / 0
Регистрация: 16.01.2014
Сообщений: 20
|
|
16.01.2014, 04:45 [ТС] | 8 |
Эх, ещё не пробовал писать так,но видимо пора научиться
Добавлено через 2 минуты Я благодарен за пояснение и совет, я прислушаюсь. Но всё же, вы бы не могли помочь мне с программой ?
0
|
Форумчанин
8215 / 5045 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
|
|
16.01.2014, 04:51 | 9 |
совсем не так. STL - стандартная библиотека шаблонов, она входит в стандартную библиотеку, но последняя не состоит исключительно из STL. Например, iostream, string...
В своей программе я сначала объявил строку (std::string). Затем считал в неё данные, использую getline, что позволяет записать не одно слово, а грубо говоря все, что ввели до нажатия Enter. Потом я инициализирую объект istringstream данной строкой. Данный объект позволяет считывать с него данные как если бы мы читали со стандартного устройства ввода (std::cin). Потом в цикле я объявляю слово - элемент std::string и до тех пор, пока у меня удалось считать новый элемент с "буфера" - вывожу его на экран, разделяю пробелами. Вот и все, осталось лишь подтянуть матчасть.
1
|
390 / 365 / 111
Регистрация: 03.02.2013
Сообщений: 1,120
|
|
16.01.2014, 04:56 | 10 |
Чем конкретно помочь? код от MrGluck очень удачен и есть решение
Добавлено через 4 минуты отстаёте от жизни )
1
|
Форумчанин
8215 / 5045 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
|
|
16.01.2014, 04:58 | 11 |
abit, старые библиотеки iostream - iostream.h, в них объекты std::cin и std::cout используют глобальное пространство имен, т.е. ::cin, ::cout. Строго говоря, там вообще нет пространства имен т.к. писались они как раз до введения namespace-ов.
http://ru.wikipedia.org/wiki/С... ка_C%2B%2B
1
|
Неэпический
|
||||||
16.01.2014, 05:00 | 12 | |||||
1
|
0 / 0 / 0
Регистрация: 16.01.2014
Сообщений: 20
|
|
16.01.2014, 05:01 [ТС] | 13 |
Проблема в том, что его код написан сложно для меня... =(
И как я проверил он выполняет немного другую функцию. Я не знаю, как в строке искать символ Пробела, и если несколько пробелов идут друг за другом , заменить их на 1. Мне бы хоть, нужные функции найти.
0
|
390 / 365 / 111
Регистрация: 03.02.2013
Сообщений: 1,120
|
|
16.01.2014, 05:06 | 14 |
скорее всего нужная вам "функция" - это std::string::find_first_of( " " ) - http://www.cplusplus.com/refer... _first_of/
от туда начинайте свои копания
1
|
0 / 0 / 0
Регистрация: 16.01.2014
Сообщений: 20
|
|
16.01.2014, 05:09 [ТС] | 15 |
Croessmah, Спасибо, программа работает, но функция написанная вами... не могли бы вы её пояснить построчно, немного ?
0
|
Форумчанин
8215 / 5045 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
|
|
16.01.2014, 05:10 | 16 |
даже после подробнейшего объяснения и отсылкой к нормальной доке с примерами?
Да там всего 4 строки, и то вся работа программы лишь в одной, первые 3 - инициализация. Ну пишите свои костыли и логику на if. Потом все равно поймете, что уделить 5-10 минут времени на изучение istringstream было проще.
0
|
0 / 0 / 0
Регистрация: 16.01.2014
Сообщений: 20
|
|
16.01.2014, 05:12 [ТС] | 17 |
Это понятно, что было лучше. Но пока, что я умею совсем не много, в этом вся причина
0
|
MrGluck
|
16.01.2014, 05:16
#18
|
1
|
Неэпический
|
||||||
16.01.2014, 05:17 | 19 | |||||
0
|
0 / 0 / 0
Регистрация: 16.01.2014
Сообщений: 20
|
|
16.01.2014, 05:23 [ТС] | 20 |
В то время пока я жду, я читаю о незнакомых мне функциях, я сразу попытался разобраться в том коде, который мне дали, и до сих пор читаю. Просто пока, что это сложновато понять. Слишком много информации за короткий срок. Стараюсь разобраться. Поэтому и прошу помощи, что бы пояснили код, что бы разобраться с этими элементами и в следующий раз попробовать написать так самому
Добавлено через 4 минуты Croessmah, cпасибо, стало гораздо понятнее, но можно узнать, что означает * повсюду, какую смысловую нагрузку они несут ?
0
|
16.01.2014, 05:23 | |
16.01.2014, 05:23 | |
Помогаю со студенческими работами здесь
20
Заменить в строке последовательность пробелов на один пробел. Заменить каждую последовательность повторяющихся элементов на один элемент Заменить в файле каждую последовательность заданных одинаковых символов на один такой символ В тексте вставить вместо одного пробела запятую и пробел, вместо двух пробелов - двоеточие и пробел Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |