0 / 0 / 1
Регистрация: 04.12.2013
Сообщений: 25

Поменять местами первое и последнее слово в предложении

06.04.2015, 15:22. Показов 6914. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Собственно, задачка вроде легкая, но у меня нету никаких идей. С клавиатуры вводится символьная строка, надо поменять местами первое и последнее слово в предложении (знаки препинания роли не играют). Можете помочь?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
06.04.2015, 15:22
Ответы с готовыми решениями:

Поменять местами первое и последнее слово в предложении
Дано предложение(водить с консоли). Поменять местами первое и последнее слово. Помогите пожалуйста

Поменять в предложении первое и последнее слово
Вам дана строка SS, состоящая только из пробелов и строчных латинских букв. Строка представляет из себя предложение, т.е. несколько слов,...

Поменять местами первое и последнее слово
Помогите решить задачу, используя строки. В заданном тексте (слова разделены пробелами) поменять местами первое и последнее слово.

6
 Аватар для Nishen
1355 / 854 / 365
Регистрация: 26.02.2015
Сообщений: 3,806
10.04.2015, 20:31
Наработки есть хоть какие-нибудь?
0
-17 / 10 / 5
Регистрация: 24.12.2014
Сообщений: 88
10.04.2015, 20:53
Nishen, в том то и дело что там вообще темный лес!, как можно объяснять человеку который в этом вообще не разбирается?
0
0 / 0 / 1
Регистрация: 04.12.2013
Сообщений: 25
10.04.2015, 21:02  [ТС]
Есть рабочий(вроде-бы) *овнокод, но у меня при его написании возникло больше вопросов, чем ответов. Например, как можно (и можно ли) избежать потери строки string при использовании функции strtok , кроме как созданием дополнительной переменной? И как можно удалить последнее слово в предложении? Плюс указатели это очень непонятная лично для меня тема, использовал их чисто методом тыка, потому что без них не получалось.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <iostream>
#include <cstring>
 
using namespace std;
 
int main() {
    char string[100], tmp[100], result[100];
    cout << "Input string: ";
    gets(string);
    strcpy(tmp, string);
    char *del = strtok(string, " ");
    char *first = del;
    char *last = del;
    while(del) {
        last = del;
        del = strtok(NULL, " ");
    }
    char *middle = strchr(tmp, ' ');
    strrev(middle);
    middle = strchr(middle, ' ');
    strrev(middle);
    cout << strcat(last, strcat(middle, first));
    return 0;
}
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
10.04.2015, 23:13
так а зачем вам указатели. Это же C++, а не голый C - используйте возможности плюсов.. Навскидку, как-то так, если по-простому:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
#include <string>
 
int main(int argc, char *argv[])
{
    std::string s;
    std::size_t first_pos;
    std::string first_word;
    
    std::cout << "Input string: ";
    std::getline(std::cin, s);
    
    first_pos = s.find(' ');
    first_word = s.substr(0, first_pos);
    
    s.replace(s.begin(), s.begin() + first_pos, s.substr(s.rfind(' ') + 1));
    s.replace(s.begin() + s.rfind(' ') + 1, s.end(), first_word);
    
    std::cout << s << std::endl;
}
Удалить последнее слово можно многими способами. Можно просто "ресайзнуть" строку, наподобие такого (удаляя также и пробел в конце строки)
C++
1
2
s.resize(s.rfind(' '));
s.shrink_to_fit();
или можно воспользоваться substr, можно воспользоваться erase, и т.д.
0
0 / 0 / 1
Регистрация: 04.12.2013
Сообщений: 25
11.04.2015, 00:51  [ТС]
Да в том то и проблема, что надо использовать именно тип данных char (универ, че поделаешь). Насколько я понимаю, то со string работать удобнее.
0
7 / 4 / 14
Регистрация: 05.02.2014
Сообщений: 131
11.04.2015, 10:16
Ofigen4ik, Используй strtok_s, первым токеном получишь первое слово, а последним - последнее. И поменяешься местами. Думаю адрес запомнить проще и переписать.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
11.04.2015, 10:16
Помогаю со студенческими работами здесь

Поменять местами первое и последнее слово в строке
Доброе время суток. Как вы видите, у меня очередная проблема. На этот раз связанная со Си-строками. В программе #define...

Поменять местами первое и последнее слово в строке
задача: поменять местами первое и последнее слово в строке. проблема некорректно определяется конец первого слова. код: /*В...

Поменять местами в строке первое и последнее слово
Ребят,помогите пожалуйста,с решением задачки,если не трудно...Собственно,задачка: Словом текста считается любая последовательность...

Поменять местами первое и последнее слово в строке
Мне нужна помощь. Помогите сделать это задание Создать файл, в который записываются исходные данные. Поменять местами первое и последнее...

Поменять местами первое и последнее слово, найти слова-палиндромы
Объектно-ориентированное программирование. Разработать программу. В заданном тексте (слова разделяются пробелами) по требованию...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

Новые блоги и статьи
MVC фреймворк в PHP
Jason-Webb 19.04.2025
Архитектурный паттерн Model-View-Controller (MVC) – это не просто модный термин из мира веб-разработки. Для PHP-программистов это фундаментальный подход к организации кода, который радикально меняет. . .
Dictionary Comprehensions в Python
py-thonny 19.04.2025
Python славится своей выразительностью и лаконичностью, что позволяет писать чистый и понятный код. Среди множества синтаксических конструкций языка особое место занимают словарные включения. . .
Шаблоны и протоколы для создания устойчивых микросервисов
ArchitectMsa 19.04.2025
Микросервисы — архитектурный подход, разбивающий сложные приложения на небольшие, независимые компоненты. Вместо монолитного гиганта, система превращается в созвездие небольших взаимодействующих. . .
Изменяемые и неизменяемые типы в Python
py-thonny 19.04.2025
Python славится своей гибкостью и интуитивной понятностью, а одна из главных его особенностей — это система типов данных. В этом языке все, включая числа, строки, функции и даже классы, является. . .
Интеграция Hangfire с RabbitMQ в проектах C#.NET
stackOverflow 18.04.2025
Разработка современных . NET-приложений часто требует выполнения задач "за кулисами". Это может быть отправка email-уведомлений, генерация отчётов, обработка загруженных файлов или синхронизация. . .
Построение эффективных запросов в микросервисной архитектуре: Стратегии и практики
ArchitectMsa 18.04.2025
Микросервисная архитектура принесла с собой много преимуществ — возможность независимого масштабирования сервисов, технологическую гибкость и четкое разграничение ответственности. Но как часто бывает. . .
Префабы в Unity: Использование, хранение, управление
GameUnited 18.04.2025
Префабы — один из краеугольных элементов разработки игр в Unity, представляющий собой шаблоны объектов, которые можно многократно использовать в различных сценах. Они позволяют создавать составные. . .
RabbitMQ как шина данных в интеграционных решениях на C# (с MassTransit)
stackOverflow 18.04.2025
Современный бизнес опирается на множество специализированных программных систем, каждая из которых заточена под решение конкретных задач. CRM управляет отношениями с клиентами, ERP контролирует. . .
Типы в TypeScript
run.dev 18.04.2025
TypeScript представляет собой мощное расширение JavaScript, которое добавляет статическую типизацию в этот динамический язык. В JavaScript, где переменная может свободно менять тип в процессе. . .
Погружение в Kafka: Концепции и примеры на C# с ASP.NET Core
stackOverflow 18.04.2025
Apache Kafka изменила подход к обработке данных в распределенных системах. Эта платформа потоковой передачи данных выходит далеко за рамки обычной шины сообщений, предлагая мощные возможности,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru