Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
cxemuch205
1 / 1 / 1
Регистрация: 31.10.2012
Сообщений: 46
#1

Дописать программу - C++

05.03.2013, 19:12. Просмотров 527. Ответов 18
Метки нет (Все метки)

Нужно слова в строке переставить с конца в начале
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
25
26
27
28
29
#include <string.h>
#include <stdio.h>
#include <conio.h>
#define N 600
 
char buf[N];
 
int main()
{
    char input[N]; int i=0, n=0, k=0, p=0;
    printf("Enter your text: ");
    gets(input);   //Ввели строку
    k = strlen(input); //к-во элм.
    input[k+1]=' '; //добавили в конец пробел
    for(i=k; i!=0; i--)
    {
        if(input[i]==' ') // ищем с конца пробел
        {
            for(n=i+1; input[n]!=' '; n++) // к концу до пробела слово вставляем в буфер(начало)
            {
                buf[p]=input[n];
                p++;
            }
            buf[p+1]=' '; // добавляем в буфер пробел для разделения
        }
    }
    puts(buf); //выводим буфер
    getch();
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.03.2013, 19:12
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Дописать программу (C++):

Дописать программу - C++
В среде С++ реализовать консольное приложение использующее заданный фрагмент кода. Описания переменных добавить самостоятельно. ...

Дописать программу на С++ - C++
#include&lt;iostream.h&gt; #include&lt;math.h&gt; struct List { float fi,r,z; int n; }; void vvod (List &amp;, int); void vivod (List...

дописать программу - C++
помогите пожалуйста дописать программу,по блок-схеме углы вроде написал,но правильно ли? #include &lt;iostream&gt; #include &lt;iomanip&gt; ...

Дописать структурную программу по C++ - C++
Помогите дописать структурную программу по C++. Сведения об ученике состоят из его имени, фамилии, класса котором он учится, оценок,...

Как дописать программу - C++
В одномерном массиве, состоящем из n вещественных элементов, вычислить: 1) сумму элементов массива, лежащих в диапазоне от А до В; ...

как дописать программу - C++
Дана точка М с координатами ( x, y), определить, принадлежит ли точка заданной области. #include &lt;iostream&gt; #include &lt;clocale&gt; ...

18
Mysterion777
-74 / 48 / 2
Регистрация: 11.01.2013
Сообщений: 199
05.03.2013, 19:23 #2
я заметил что ты не правильно обращаешься к концу строки так как у тебя счет символов идет с нуля а длина строки считается с 1-цы то....
C++
1
2
3
gets(input);   //Ввели строку
    k = strlen(input); //к-во элм.
    input[k+1]=' '; //добавили в конец пробел
не верен нуно так
C++
1
2
3
gets(input);   //Ввели строку
    k = strlen(input); //к-во элм.
    input[k]=' '; //добавили в конец пробел
0
cxemuch205
1 / 1 / 1
Регистрация: 31.10.2012
Сообщений: 46
05.03.2013, 19:25  [ТС] #3
Цитата Сообщение от Mysterion777 Посмотреть сообщение
я заметил что ты не правильно обращаешься к концу строки так как у тебя счет символов идет с нуля а длина строки считается с 1-цы то....
C++
1
2
3
gets(input);   //Ввели строку
    k = strlen(input); //к-во элм.
    input[k+1]=' '; //добавили в конец пробел
не верен нуно так
C++
1
2
3
gets(input);   //Ввели строку
    k = strlen(input); //к-во элм.
    input[k]=' '; //добавили в конец пробел
Сейчас проверю.. Спасибо за попытку!
0
yoghurt92
374 / 345 / 22
Регистрация: 17.05.2012
Сообщений: 1,049
05.03.2013, 19:31 #4
cxemuch205, например строка "привет пока" должна превратиться в "пока привет"?
0
cxemuch205
1 / 1 / 1
Регистрация: 31.10.2012
Сообщений: 46
05.03.2013, 19:34  [ТС] #5
Цитата Сообщение от cxemuch205 Посмотреть сообщение
Сейчас проверю.. Спасибо за попытку!
Нет не работает..

Добавлено через 2 минуты
Цитата Сообщение от cxemuch205 Посмотреть сообщение
Нет не работает..
Там плюс нужен, если его убрать ничего толкового не выводит, а так выводит только последнее слово
0
cxemuch205
1 / 1 / 1
Регистрация: 31.10.2012
Сообщений: 46
05.03.2013, 19:35  [ТС] #6
Цитата Сообщение от yoghurt92 Посмотреть сообщение
cxemuch205, например строка "привет пока" должна превратиться в "пока привет"?
да именно
0
yoghurt92
374 / 345 / 22
Регистрация: 17.05.2012
Сообщений: 1,049
05.03.2013, 19:38 #7
cxemuch205, а не вариант взять другую строку, записывать туда в нужном порядке, и потом скопировать все в исходную, или принципиально?
0
cxemuch205
1 / 1 / 1
Регистрация: 31.10.2012
Сообщений: 46
05.03.2013, 19:53  [ТС] #8
Цитата Сообщение от yoghurt92 Посмотреть сообщение
cxemuch205, а не вариант взять другую строку, записывать туда в нужном порядке, и потом скопировать все в исходную, или принципиально?
Хах)) да люблю когда пишешь и программа работает))

Добавлено через 12 минут
Этот вариант работате но только последнее слово выводит
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
25
26
27
28
29
30
#include <string.h>
#include <stdio.h>
#include <conio.h>
#define N 100
 
char buf[N];
 
int main()
{
    char input[N]; int i=0, n=0, k=0, p=0;
    printf("Enter your text: ");
    gets(input);
    k = strlen(input);
    input[k+1]=' ';
    for(i=k; i!=0; i--)
    {
        if(input[i]==' ')
        {
            for(n=i+1; input[n]!=' '; n++)
            {
                buf[p]=input[n];
                p++;
            }
            buf[p+1]=' ';
            p++;
        }
    }
    puts(buf);
    getch();
}
0
yoghurt92
374 / 345 / 22
Регистрация: 17.05.2012
Сообщений: 1,049
05.03.2013, 19:57 #9
cxemuch205, ну если она выводит одно слово, значит она работает НЕправильно) так чем вам мой вариант не нравится?)
0
cxemuch205
1 / 1 / 1
Регистрация: 31.10.2012
Сообщений: 46
05.03.2013, 20:03  [ТС] #10
yoghurt92, меньше текста, больше дела, подкинте идею что там не так..
0
yoghurt92
374 / 345 / 22
Регистрация: 17.05.2012
Сообщений: 1,049
05.03.2013, 20:27 #11
cxemuch205, зачем вы в конец строки добавляете пробел? может лучше сделать так:

C++
1
for(n=i+1; input[n]!='\0' || input[n]!=' '; n++)
тогда цикл будет идти либо до конца строки конда записываем последние слово, либо до пробела...

Добавлено через 11 минут
cxemuch205, твоя программа работает правильно, просто ты не совсем правильно условия сделал, не надо в конец строки ставить пробел, ты идешь с конца строки, находишь пробел и копируешь все в переменную, ок, первое слово у тебя есть, ты ставишь пробел и казалось все круто, НО!!!! ты идешь дальше проходишь первое слов, а перед первым словом ожидаемого пробела нет, вот и программа завершает свою работу, все работает правильно, просто условие надо поменять!

покажу, смотри, есть строка one two, ты идешь до пробела перед two и все копируешь в буфер, ок, а перед one пробела нет, тут твое условие и не работает...
0
cxemuch205
1 / 1 / 1
Регистрация: 31.10.2012
Сообщений: 46
05.03.2013, 20:37  [ТС] #12
Цитата Сообщение от yoghurt92 Посмотреть сообщение
cxemuch205, зачем вы в конец строки добавляете пробел? может лучше сделать так:

C++
1
for(n=i+1; input[n]!='\0' || input[n]!=' '; n++)
тогда цикл будет идти либо до конца строки конда записываем последние слово, либо до пробела...

Добавлено через 11 минут
cxemuch205, твоя программа работает правильно, просто ты не совсем правильно условия сделал, не надо в конец строки ставить пробел, ты идешь с конца строки, находишь пробел и копируешь все в переменную, ок, первое слово у тебя есть, ты ставишь пробел и казалось все круто, НО!!!! ты идешь дальше проходишь первое слов, а перед первым словом ожидаемого пробела нет, вот и программа завершает свою работу, все работает правильно, просто условие надо поменять!

покажу, смотри, есть строка one two, ты идешь до пробела перед two и все копируешь в буфер, ок, а перед one пробела нет, тут твое условие и не работает...
Я так пробовал, но все равно попробовал еще раз, не работает..
0
yoghurt92
374 / 345 / 22
Регистрация: 17.05.2012
Сообщений: 1,049
05.03.2013, 21:02 #13
cxemuch205, вот посмотрите, вводил one two выдавало правильный ответ, своего не добавлял, оставил ваш код

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
25
26
27
28
29
30
31
32
33
34
35
36
37
#include "stdafx.h"
#include <iostream>
#include <string.h>
#include <stdio.h>
#include <conio.h>
using namespace std;
#define N 100
 
char buf[N];
 
int main()
{
    char input[N]; int i=0, n=0, k=0, p=0;
    printf("Enter your text: ");
    gets(input);   //Ввели строку
    k = strlen(input); //к-во элм.
 
    for(i=k; i>=0; i--)
    {
        if(input[i]==' ' || i ==0) // ищем с конца пробел
        {
            if(i ==0)
                i -= 1;
 
            for(n=i+1; input[n]!='\0' && input[n]!=' '; n++) // к концу до пробела слово вставляем в буфер(начало)
            {
                buf[p]=input[n];
                p++;
            }
             
            buf[p] = ' '; // добавляем в буфер пробел для разделения
            p++;
        }
    }
    puts(buf); //выводим буфер
    getch();
}
0
cxemuch205
1 / 1 / 1
Регистрация: 31.10.2012
Сообщений: 46
05.03.2013, 21:07  [ТС] #14
yoghurt92, работает спасибо!
0
yoghurt92
374 / 345 / 22
Регистрация: 17.05.2012
Сообщений: 1,049
05.03.2013, 21:09 #15
cxemuch205, вы поняли в чем была ошибка?

Добавлено через 28 секунд
cxemuch205, поставить спасибо
1
05.03.2013, 21:09
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.03.2013, 21:09
Привет! Вот еще темы с ответами:

Помогите дописать программу - C++
вот код программы, но работает только первая часть из файла в массив, как теперь собрать её чтобы вся работала? может с помощью классов иил...

Не получается дописать программу по массивам - C++
Задание: В каждой строке матрицы Т найти количество делящихся на 3, и записать эти числа в вектор. Сделать сортировки вектора по...

как правильно дописать программу - C++
ifstream f; int c=0; int x=0; int y=0; string slova; f.open(&quot;C:\\text.txt&quot;); while(!f.fail()){ f&gt;&gt;slova; ++c; ...

Требуется дописать программу С++ сорировка - C++
Требуется упорядочить матрицу по столбцам методом прямого выбора без использования дополнительного массива. Вот программа: #include...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru