Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.10.2016, 13:48   #1
Kef1r
Форумчанин
 
Регистрация: 13.05.2016
Сообщений: 111
По умолчанию Исключить из строки первое и последнее слова.

Здравствуйте, нужна помощь.
Дана строка текста, в которой слова разделены пробелами. Необходимо исключить из строки первое и последнее слова, оставшийся текст вывести на экран. Строка вводится с клавиатуры.
Строка должна быть типа string, а не char. И если можно без сложностей, типа <vector>. (слишком рано для меня).
Kef1r вне форума Ответить с цитированием
Старый 07.10.2016, 14:07   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

Какие сложности? Какой вектор? string.substr, string.find, string.rfind и все
p51x вне форума Ответить с цитированием
Старый 07.10.2016, 14:30   #3
Kef1r
Форумчанин
 
Регистрация: 13.05.2016
Сообщений: 111
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
Какие сложности? Какой вектор? string.substr, string.find, string.rfind и все
Сложности в алгоритме. Я предполагаю что нужно найти первый пробел " " и удалить то, что перед ним(удалим первое слово). Затем найти последний пробел и удалть то, что после него(последнее слово). Как удалить то что перед пробелом, и то что после пробела я не знаю.
Kef1r вне форума Ответить с цитированием
Старый 07.10.2016, 15:30   #4
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,065
По умолчанию

Строка не меняется, создаётся новая строка с нужными данными.
Цикл с начала в поисках первого пробела, находите с какого символа начинается второе слово.
Цикл с конца строки в поисках первого попавшегося пробела, так найдёте до какого символа идёт предпоследнее слово.
Потом из исходной строки берёте подстроку между этими двумя символами и получаете искомый результат.
Код:
cout << "Введи строкелло, бро, бротюня, бротелло" << endl;
string str;
getline(cin, str);
int from, to;
for (from = 0; from < str.length() && str[from] != ' '; ++from);
for (to = str.length() - 1; to >= 0 && str[to] != ' '; --to);
cout << "Результелло" << endl << str.substr(from, to - from);
Можно конечно и find, rfind использовать, но это не крутелло
pu4koff вне форума Ответить с цитированием
Старый 07.10.2016, 16:27   #5
Kef1r
Форумчанин
 
Регистрация: 13.05.2016
Сообщений: 111
По умолчанию

Спасибелло, есть еще проблеммо:
Что делать если строка задается так?
Код:
cout << "Введите количество слов: " << endl;
 cin >> n;
cout << "Введите строку: " << endl;
for(i = 0; i < n; i++) 
cin >> s[i];
Просто это всего лишь часть задания, не хотелось бы из-за этого переделывать всю программу.

Сделал вот так, выводит только первое слово.
Код:
for(i = 0; i < s[i].length() && s[i]!=" "; ++i) {
	for(g = s[g].length()-1; g >=0 && s[g]!=" "; --g);
cout << "Новая строка" << endl << s[i].substr(i,g-i);}
Kef1r вне форума Ответить с цитированием
Старый 07.10.2016, 16:41   #6
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,065
По умолчанию

Тогда уже на слова всё поделено, значит всё элементарно:
Код:
cout << "Все словеллы, кроме первого и последнего" << endl;
for (int i = 1; i < n-1; ++i)
  cout << s[i] << " ";
pu4koff вне форума Ответить с цитированием
Старый 07.10.2016, 16:51   #7
Kef1r
Форумчанин
 
Регистрация: 13.05.2016
Сообщений: 111
По умолчанию

Больше спасибелло тебе)))
Kef1r вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поменять местами первое и последнее слово. Паскаль Flower2 Помощь студентам 10 01.11.2013 09:36
Сравнить первое и последнее слово в строке (СИ) Pras Помощь студентам 1 27.06.2013 20:52
Поменять местами первое и последнее слова в предложении. alex.dadaev Помощь студентам 0 17.03.2011 09:39
выбрать первое и последнее значение в списке по условию simpleGo Microsoft Office Excel 4 06.12.2010 19:43