Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

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

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

Здесь нужно купить рекламу за 25 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru

Ответ
 
Опции темы
Старый 10.07.2019, 12:43   #1
Андрей Ш++
учу с++
Пользователь
 
Аватар для Андрей Ш++
 
Регистрация: 06.10.2017
Сообщений: 44
По умолчанию Перестановка слов в строке С++

Всем привет!
У меня есть задача, сделать перестановку слов в с++ тип:
input>> abc cde fgh igk
output>> cde abc igk fgh
Код:
#include <iostream>

using namespace std;

int main()
{
    int shotchic=0;
    int shotchic1=0;
    char stroka[100]={0};
    //cout<< stroka;
    cin.getline(stroka,100);
    //cout<<stroka;
    char slovo1[100]={0};
    char slovo2[100]={0};
    while (stroka[shotchic]!=0){
        while (stroka[shotchic]!=32){
                slovo1[shotchic1]=stroka[shotchic];
                shotchic++;
                shotchic1++;
        }
        shotchic1=0;
        shotchic++;
        while (stroka[shotchic]!=32||stroka[shotchic]!=0){
                slovo2[shotchic1]=stroka[shotchic];
                shotchic++;
                shotchic1++;
        }
        shotchic++;
        shotchic1=0;
        cout<<slovo2;
        cout <<slovo1;

    }

}
Но что-то пошло не так.
По мои подсчетам все должно работать.

План действий моего кода:
1.Ввести строку

2.Найти слово1 и слово2

3.Вывести слово2 и слово1

Но я не могу понять в чем ошибка. Помогите пожалуйста!
Андрей Ш++ вне форума   Ответить с цитированием
Старый 10.07.2019, 12:51   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,078
По умолчанию

Цитата:
Сообщение от Андрей Ш++ Посмотреть сообщение
while (stroka[shotchic]!=32){
нет проверки на 0

Цитата:
Сообщение от Андрей Ш++ Посмотреть сообщение
while (stroka[shotchic]!=32||stroka[shotchic]!=0){
Допустим stroka[shotchic] = 0. Что будет результатом уловия "0 != 32 || 0 != 0"? Т.е. "истина или ложь"?

Что мешало сделать, типа:
Код:
cin >> str1;
cin >> str2;
cout << str2;
cout << str1;
?
Запомните раз и навсегда: помочь != "решите за меня"!
p51x вне форума   Ответить с цитированием
Старый 10.07.2019, 12:53   #3
Андрей Ш++
учу с++
Пользователь
 
Аватар для Андрей Ш++
 
Регистрация: 06.10.2017
Сообщений: 44
По умолчанию

Сама задача, нужно вытянуть слова из строки
Андрей Ш++ вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
c++ перестановка слов в строке killeraleksana Помощь студентам 0 28.05.2012 17:39
Паскаль. Строки.Перестановка слов. Анастасия*** Помощь студентам 0 09.01.2012 01:40
перестановка слов в предложении luybeznov Помощь студентам 1 13.12.2011 09:59
Перестановка букв в строке на си Brabus Помощь студентам 7 08.11.2010 23:58
перестановка букв в строке Андрей.12 Помощь студентам 0 15.12.2009 16:52


06:38.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.