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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 25, средняя оценка - 4.76
fighterfx
0 / 0 / 0
Регистрация: 18.11.2011
Сообщений: 11
#1

Вывести слова в строке в обратном порядке - C++

18.11.2011, 12:47. Просмотров 3222. Ответов 7
Метки нет (Все метки)

Привет всем. Помогите пожалуйста ! Дана строка состоящая из 30 слов между словами пробел и запятая вывести на экран слова в обратном порядке
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.11.2011, 12:47     Вывести слова в строке в обратном порядке
Посмотрите здесь:

C++ Слова в обратном порядке (!не палиндром!)
Вывести слова в обратном порядке C++
C++ Отсортировать слова в обратном порядке
Вывести в алфавитном порядке слова, которые присутствуют либо в первой строке, либо во второй, но не в обеих сразу. C++
Вывести слова в обратном порядке C++
C++ вывести слова - анаграммы из словаря, состоящего из пар слов(при чтении в обратном порядке образуется другое слово)
C++ Вывести строку, содержащую эти же слова, но расположенные в обратном порядке. Записать полученную строку в другой файл
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Thinker
Эксперт C++
4220 / 2194 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
18.11.2011, 12:56     Вывести слова в строке в обратном порядке #2
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
#include<stdio.h>
#include<string.h>
#include<conio.h>
#define DEL " .,;:\t\n"
 
void Print(char *s)
{
    char *word;
    if (word = strtok(NULL, DEL))
    {
         Print(s);
         puts(word);
    }
}
 
int main()
{
    char s[1024], *word;
    fgets(s, 1024, stdin);
    if (word = strtok(s, DEL))
    {
        Print(s);
        puts(word);
    }
    getch();
    return 0;
}
fighterfx
0 / 0 / 0
Регистрация: 18.11.2011
Сообщений: 11
18.11.2011, 13:12  [ТС]     Вывести слова в строке в обратном порядке #3
у меня ошибки выдает =(
Thinker
Эксперт C++
4220 / 2194 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
18.11.2011, 13:14     Вывести слова в строке в обратном порядке #4
Цитата Сообщение от fighterfx Посмотреть сообщение
у меня ошибки выдает =(
какие ошибки? У меня все работает. Я там библиотеку <string.h> добавил, скопируйте еще раз. Введите строку, программа выделит в ней слова и выведет в обратном порядке.
fighterfx
0 / 0 / 0
Регистрация: 18.11.2011
Сообщений: 11
18.11.2011, 13:22  [ТС]     Вывести слова в строке в обратном порядке #5
спасибо большое всё работает =))) только можете еще объяснить а то я не совсем понимаю как устроена программа
arturkrang
1 / 1 / 0
Регистрация: 18.11.2011
Сообщений: 5
18.11.2011, 13:24     Вывести слова в строке в обратном порядке #6
ehue&
Thinker
Эксперт C++
4220 / 2194 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
18.11.2011, 13:50     Вывести слова в строке в обратном порядке #7
Цитата Сообщение от fighterfx Посмотреть сообщение
можете еще объяснить а то я не совсем понимаю как устроена программа
Все построено на функции strtok. Программа работает точно также, как эта
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include<stdio.h>
#include<string.h>
#include<conio.h>
#define DEL " .,;:\t\n"
 
int main()
{
    char s[1024], *word;
    fgets(s, 1024, stdin);
    word = strtok(s, DEL);
    while(word)
    {
        puts(word);
        word = strtok(NULL, DEL);
    }
    getch();
    return 0;
}
только с использованием рекурсии.

Если не любите рекурсию, то можно так:

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include<stdio.h>
#include<string.h>
#include<conio.h>
#define DEL " .,;:\t\n"
 
int main()
{
    char s[1024], *word[100];
    int i, n = 0;
    fgets(s, 1024, stdin);
    word[n] = strtok(s, DEL);
    while(word[n])
        word[++n] = strtok(NULL, DEL);
    for(i = n - 1; i >= 0; i--)
        puts(word[i]);
    getch();
    return 0;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.11.2011, 14:47     Вывести слова в строке в обратном порядке
Еще ссылки по теме:

Вывести слова в обратном порядке C++
C++ Вывести слова в строке в алфавитном порядке
C++ Вывести слова в строке в обратном порядке
Переставить слова из файла в обратном порядке C++
C++ Вывести строку, содержащую эти же слова, разделенные одним пробелом и расположенные в обратном порядке

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

Или воспользуйтесь поиском по форуму:
ОгУрЕц
Заблокирован
18.11.2011, 14:47     Вывести слова в строке в обратном порядке #8
fighterfx, а если так?
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
#include <iostream>
#include <conio.h>
using namespace std;
 
char * reverse ( char* str )
{
    int len = 0;
    while(str[len] != '\0')
        len++;
    char * rev = new char[len + 1];
    for(int i = 0; i < len; i++)
        rev[i] = str[len - 1 - i];
    rev[i] = '\0';
    return rev;
}
 
int main()
{
    char array [] = {"1234567890"};
    cout << array << endl;
    _getch();
    char * str  = reverse(array);
    cout << reverse(array) << endl;
    _getch();
    return 0;
 }
Yandex
Объявления
18.11.2011, 14:47     Вывести слова в строке в обратном порядке
Ответ Создать тему
Опции темы

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