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

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

29.11.2011, 11:44. Показов 1985. Ответов 2
Метки нет (Все метки)

Помогите пожалуйста
Написать программу, которая считывает текст с клавиатуры и выводит его на экран, меняет местами каждые соседние слова
среда Borland Ms-Dos
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.11.2011, 11:44
Ответы с готовыми решениями:

Написать программу, которая считывает текст из файла и выводит его на экран, меняя местами каждые два соседних слова
Вот исходный код: #include <fstream> #include <iostream> //#include<clocale> using namespace...

Написать программу,которая считывает текст из файла и выводит его на экран,меняя местами каждые два соседних слова.
Написать программу,которая считывает текст из файла и выводит его на экран,меняя местами каждые два...

Написать программу, которая считывает текст из файла и выводит его на экран, меняя местами каждые два соседних слова
Ребят, помогите пожалуста програмку написать, мне завтра для зачета надо....я нехрена не знаю(((...

Написать программу, которая считывает текст из файла и выводит его на экран, меняя местами каждые два соседних
Написать программу, которая считывает текст из файла и выводит его на экран, меняя местами каждые...

2
237 / 210 / 29
Регистрация: 08.06.2011
Сообщений: 467
29.11.2011, 19:46 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
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()
1
0 / 0 / 0
Регистрация: 29.11.2011
Сообщений: 3
29.11.2011, 22:38  [ТС] 3
Net_Wanderer, спасибо
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.11.2011, 22:38
Помогаю со студенческими работами здесь

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

Написать программу,которая считывает текст с клавиатуры и выводит на экран слова начинающиеся с гласных букв
надо один цикл вроде вставить но не знаю какой Написать программу,которая считывает текст с...

Написать программу, которая считывает текст с клавиатуры и выводит на экран слова, содержащие двузначные числа
Помогите пожалуйста, написать программу, которая считывает текст с клавиатуры и выводит на экран...

Написать программу, которая считывает текст с клавиатуры и выводит на экран только слова состоящие из заданного количества букв
Написать программу, которая считывает текст с клавиатуры и выводит на экран только слова состоящие...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru