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

Написать программу, которая считывает текст с клавиатуры и выводит его на экран, меняет местами каждые соседние слова - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Код з С++ в JAVA http://www.cyberforum.ru/cpp-beginners/thread394559.html
Помогите переделать код в Java.. for(s=0; *str!='/0'; str++) { if (*str=='(') s++; if (*str==')') s--; if (s<0) break; } if (s==0) cout<< "YES"; else cout<<"NO";
C++ Помогите со сканером сети, немогу закончить программу Всем добрый день, пишется сканер для сети, определяющий айпи всех пользователей и.т.д. В процесе возникла следующая проблема: Как отлавливать длительность пребывания пользователя в сети, или хотя-бы время появления и выхода айпи в сеть(и). Всем заранее спасибо за помощь)) http://www.cyberforum.ru/cpp-beginners/thread394555.html
C++ Не работают программы со структурой и массивы с файлами
Здравствуйте.Прошу помогите с 2-мя программками.Я не сильно разбираюсь в С++,написал 2 программы,вроде все правильно,но почему то они не работают,преподаватель тоже смотрел,говорит что написано все правильно а почему не работает не может понять. Вот сами программы и задание. Структура. В магазине продаются несколько видов цветов.Вывести количество роз,проданных на этой неделе. #include...
C++ Произвести выборку всех автомобилей (с указанием владельца и его адреса) указанной марки с учетом цвета.
задана структура – автомобиль. Произвести выборку всех автомобилей (с указанием владельца и его адреса) указанной марки с учетом цвета. я пытаюсь ввести и вывести список. #include "stdafx.h" #include <conio.h> #include <iostream> #include <cstring> #include <string> using namespace std; struct avto {char marka;
C++ Присвоение значений элементам вложенной структуры http://www.cyberforum.ru/cpp-beginners/thread394543.html
Необходимо присвоить значение элементам массива структур struct message { unsigned char code; unsigned short length; struct body { unsigned char id; char* str; }; } Message;
C++ Дано натуральное k. Напечатать k-ю цифру некоторой последовательности.. Дано натуральное k. Напечатать k-ю цифру последовательности 24681012141618202224262830..., в которой выписаны подряд все натуральные четные числа. #include <iostream> #include <conio.h> #include <stdio.h> #include <cmath> #include <iomanip> #include <locale> using namespace std; подробнее

Показать сообщение отдельно
Net_Wanderer
235 / 208 / 19
Регистрация: 08.06.2011
Сообщений: 467
29.11.2011, 19:46     Написать программу, которая считывает текст с клавиатуры и выводит его на экран, меняет местами каждые соседние слова
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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
#define MAXWORDS  100
#define MAXTEXT  1000
#define DELIMS  " .,*/:;(){}\"\n\t!?"
 
char *make_format(char *s, char *delims);
char *make_str(char *s, char *fmt,
    char *delims, char **words);
char *gettext(char *, int);
char **permute(char **);
 
int main()
{
    char text[MAXTEXT], *p;
    char *words[MAXWORDS], **w;
    char *format;
 
    while (printf("enter a text:\n") && gettext(text, MAXTEXT)) {
        if ((format = strdup(text)) == NULL) {
            printf("error: cannot allocate memory\n");
            return 1;
        }
        make_format(format, DELIMS);
 
        w = words;
        for (p = strtok(text, DELIMS); 
            p != NULL && w < words + MAXWORDS;
            p = strtok(NULL, DELIMS)) {
                if ((*w++ = strdup(p)) == NULL) {
                    printf("error: cannot allocate memory\n");
                    return 1;
                }
        }
        *w = NULL;
 
        printf("\ntext with the permuted words:\n%s\n",
            make_str(text, format, DELIMS, permute(words)));
 
        for (w = words; *w != NULL; w++)
            free(*w);
        free(format);
    }
    return 0;
}
 
#define swap(t, a, b) { t temp = (a); (a) = (b); (b) = temp; }
 
char **permute(char **w)
{
    int i;
 
    for (i = 0; w[i] != NULL && w[i+1] != NULL; i+= 2)
        swap(char *, w[i], w[i+1]);
    return w;
}
 
char *gettext(char *s, int lim)
{
    int c;
    char *beg = s;
 
    if (lim < 2 || (c = getchar()) == EOF)
        return NULL;
    *s++ = c;
    lim--;
    while ((c = getchar()) != EOF && --lim > 0)
        *s++ = c;
    *s = '\0';
    return beg;
}
 
char *make_format(char *s, char *delims)
{
    char *t, *beg = s;
    int shift;
 
    for ( ; *s != '\0'; s++) {
        if (strchr(delims, *s) != NULL)
            continue;
        for (shift = 0, t = s + 1; 
            strchr(delims, *t) == NULL; t++)
                shift++;
        for (t--; ; t++) {
            *(t - shift) = *t;
            if (*t == '\0')
                break;
        }
    }
    return beg;
}
 
char *make_str(char *s, char *fmt,
    char *delims, char **words)
{
    char *beg = s;
 
    for (*s = '\0'; *fmt != '\0'; fmt++)
        if (strchr(delims, *fmt) == NULL) {
            if (*words != NULL) {
                strcat(s, *words);
                s += strlen(*words++);
            } else {
                strcat(s, fmt);
                return beg;
            }
        } else {
            *s++ = *fmt;
            *s = '\0';
        }
    return beg;
}
пример работы
enter a text:
(Protect) *,..,* the/Internet!
{Fight for} the Future!.../
^Z

text with the permuted words:
(the) *,..,* Protect/Fight!
{Internet the} for Future!.../

enter a text:
^Z
Press any key to continue . . .

Цитата Сообщение от Dj0nny Посмотреть сообщение
каждые соседние слова
сделал, как понял
если не так, то достаточно только изменить тело функции permute()
 
Текущее время: 05:17. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru