С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.62/29: Рейтинг темы: голосов - 29, средняя оценка - 4.62
24 / 21 / 3
Регистрация: 04.11.2014
Сообщений: 283

Найти и сохранить в каждой строке только те слова, которые удовлетворяют условию (файловый ввод/вывод)

28.12.2015, 20:22. Показов 6361. Ответов 22
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Вечер добрый. Помогите студенту, пожалуйста: завтра экзамен в университете, а на допуск нужно сделать еще одну лабораторную, а я с обработкой текстов я не дружу. Буду весьма благодарен. Вот суть задания:
Используя технологию процедурного программирования разработать программу обработки текстовых файлов с числом строк не менее пяти, каждая из которых содержит не более 80 символов, в соответствии с индивидуальным заданием. Результат должен быть выведен на экран и сохранен в файл.
Дан текст. Словом текста считается любая последовательность букв латинского алфавита; между соседними словами - не менее одного пробела. Перед первым и за последним словом каждой строки произвольное число пробелов. Найти и сохранить в каждой строке только те слова, которые совпадают с конечным отрезком латинского алфавита (z, yz, xyz,…).
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
28.12.2015, 20:22
Ответы с готовыми решениями:

Найти и сохранить в строке слова последовательности, которые отличны от первого слова и удовлетворяют условию
Дана строка. Словом текста считается любая последовательность букв латинского алфавита; между соседними словами - не менее одного пробела,...

Найти и сохранить в строке те слова, которые отличны от последнего слова и удовлетворяют следующему свойству
Дана строка. Словом текста считается любая последовательность букв латинского алфавита; между соседними словами - не менее одного...

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

22
 Аватар для Mesteriis
599 / 237 / 69
Регистрация: 08.08.2015
Сообщений: 1,637
28.12.2015, 21:05
ЗеХель, Ну у вас есть хоть какой то набросок?
0
24 / 21 / 3
Регистрация: 04.11.2014
Сообщений: 283
28.12.2015, 21:10  [ТС]
Цитата Сообщение от Mesteriis Посмотреть сообщение
ЗеХель, Ну у вас есть хоть какой то набросок?
У меня есть код, который я писал с помощью препода, но он с другим алгоритмом - удаляется каждое четное слово. Я хотел на его основе написать, но на вникание в него понадобится больше времени, чем есть.
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
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
//Программа создает файл строк. Признак окончания ввода -
//пустая строка. Затем файл построчно читается,
//и программа удаляет из каждой строки, содержащей слова,
//разделенные произвольным количеством пробелов, все слова с чётным номером.
//Обработанная строка записывается в новый файл
 
 
#include <stdio.h>
#include <conio.h>
#include <iostream>
#include <string.h>
#include <stdlib.h>
#define FNAME_I "D:\\st_i.txt\0" //имя исх. файла задано константной строкой
#define FNAME_R "D:\\st_r.txt\0" //имя рез. файла задано константной строкой
const int RAZ = 80;              //максимальная длина строки
const char PR_R[] = "r";         //признак открытия файла на чтение
const char PR_W[] = "w";         //признак открытия файла на запись
void make_file(char *fname);    //функция создания файла
int proverka_file(char *fname, const char *);   //проверка наличия файла
void obrabotka_file(char *, char *);        //обработка содержимого
void vivod_file(char*);      //вывод содержимого файла на печать
 
using namespace std;
 
int main()
{
    
    char fname_i[20] = FNAME_I;
    char fname_r[20] = FNAME_R;
    //создаем исходный файл
    make_file(fname_i);
    //выводим его содержимое
    if (!proverka_file(fname_i, PR_R))
    {
        cout << "Ошибка открытия файла " << fname_i << " на чтение" << endl;
        cout << "Нажмите <Enter>" << endl;
        getchar();
        return 0;   //если исходный файл не создан
    }
    cout << "Содержимое исходного файла:" << endl;
    vivod_file(fname_i);
 
    //обрабатываем файл
    obrabotka_file(fname_i, fname_r);
 
    //выводим содержимое результата
    if (!proverka_file(fname_r, PR_R))
    {
        cout << "Ошибка открытия файла " << fname_r << " на чтение" << endl;
        cout << "Нажмите <Enter>" << endl;
        getchar();
        return 0;   //если результирующий файл не создан
    }
    cout << "Результат (в каждой строке удалены слова с чётным номером):\n";
    vivod_file(fname_r);
 
    cout << endl << "Для завершения нажмите <Enter>";
    getchar();
    return 0;
}
//main_End________________________________________________________________
//make_file_ Begin________________________________________________________
void make_file(char *fname_i)
{
    char st[RAZ];       //исходная строка
    FILE *in;             //текстовый файл
    char otv;       //ответ пользователя
                    //Открываем файл в режиме чтения (r)
                    //Если файл с таким именем уже есть, то либо пользователь вводит
                    //новое имя, либо новые записи будут дописаны поверх старых
    while (proverka_file(fname_i, PR_R))
    {
        cout << "Такой файл уже есть! Зададите новое имя Y/N?" << endl;
        cin.get(otv);
        if (otv == 'Y' || otv == 'y')
        {
            cout << "Введите новое имя:" << endl;
            cin >> fname_i;
            cin.get();  //убираем символ '\n' из потока
        }
        else {
            cin.get();  //убираем символ '\n' из потока
            break;
        }
    }
    //проверяем возможность открытия файла для записи
    //поскольку полное имя файла могло быть задано с ошибкой
    if (!proverka_file(fname_i, PR_W))
    {
        cout << "Ошибка открытия файла " << fname_i << " на запись" << endl;
        cout << "Нажмите <Enter>" << endl;
        getchar();
        exit(0);
    }
    //Открываем файл в режиме записи (w) текста (по умолчанию)
    //Если файл с таким именем уже есть, то новые данные
    //будут дописаны поверх старых
    in = fopen(fname_i, PR_W);
    cout << "Создание файла." << endl;
    cout << "Признак окончания ввода - ввод пустой строки" << endl;
    cout << "Введите строку и нажмите <Enter>" << endl;
    cout << "->";
    cin.getline(st, RAZ); //функция вводит строку целиком, включая
                          //пробелы и символ \n
    while (strlen(st))
    {
        fprintf(in, "%s\n", st);
        cout << "Введите строку и нажмите <Enter>" << endl;
        cout << "->";
        otv++;
        cin.getline(st, RAZ);
    }
    fclose(in);         //закрываем файл
}
//make_file_End___________________________________________________________
 
//proverka_file_Begin_____________________________________________________
//проверка наличия файла
int proverka_file(char *fname, const char *pr)
{
    //Открываем файл
    if ((fopen(fname, pr)) == NULL) //файл не существует
        return(0);
    return(1);
}
//proverka_file_End_______________________________________________________
 
//obrabotka_file_Begin____________________________________________________
//обработка содержимого файла
void obrabotka_file(char *fname_i, char *fname_r)
{
    FILE *in, *out;     //исходный и результирующий файлы (потоки)
    char st[RAZ];           //исходная строка
    char sr[RAZ];           //результирующая строка
    char pr[RAZ];           //обрабатываемое слово
    int i, j, k;            //номер обрабатываемого символа
    int flag;                   //признак четного номера слова
    int n;                      //длина результирующей строки
    in = fopen(fname_i, PR_R); //открываем файл на чтение
    out = fopen(fname_r, PR_W); //открываем файл на запись
    fgets(st, RAZ, in);     //читаем строку из файла in
    while (!feof(in))
    {
        i = 0;
        n = 0;
        flag = 1;
        sr[i] = '\0';
        while (st[i])
        {
            k = 0;
            while (st[i] == ' ')    //удаляем в строке ведущие пробелы
                i++;
            while (st[i] != ' ' && st[i + 1])   //выделяем очередное слово
            {
                pr[k] = st[i];
                k++;
                i++;
            }
            if (flag)                //если у слова нечетный номер -
            {
                flag = 0;             //заносим в результирующую строку
                for (j = 0; j < k; j++, n++)
                    sr[n] = pr[j];
                if (st[i])
                    sr[n] = ' ';
                n++;
            }
            else flag = 1;
            i++;
        }
        sr[n++] = '\0';         //закрываем результирующую строку
        fprintf(out, "%s\n", sr);  //записываем обработанную строку в новый файл
        fgets(st, RAZ, in);     //считываем новую строку из файла
    }
    fclose(in); fclose(out);     //Закрываем файлы in и out 
}
//obrabotka_file_End______________________________________________________
//vivod_file_Begin________________________________________________________
//вывод содержимого файла на экран
void vivod_file(char *fname)
{
    FILE *in_out;
    char st[RAZ];               //считанная строка
    in_out = fopen(fname, PR_R);  //открываем файл на чтение
    fgets(st, RAZ, in_out);     //читаем строку из файла in_out
    while (!feof(in_out))
    {
        cout << st;             //выводим очередную строку на экран
        fgets(st, RAZ, in_out);
    }
    fclose(in_out);
}
//vivod_file_End__________________________________________________________
0
 Аватар для Mesteriis
599 / 237 / 69
Регистрация: 08.08.2015
Сообщений: 1,637
28.12.2015, 21:14
ЗеХель, понятно, препод видел живого Сталина, ладно сейчас чой нить напишу. Только уж извени архаизмами страдать не буду, так что подумай как ты будешь объяснять "с++11"
0
24 / 21 / 3
Регистрация: 04.11.2014
Сообщений: 283
28.12.2015, 21:17  [ТС]
Цитата Сообщение от Mesteriis Посмотреть сообщение
Только уж извени архаизмами страдать не буду, так что подумай как ты будешь объяснять "с++11"
Благодарю, с этим проблем не будет, я знаком с ним, проблемы вызывает обработка текстов, до этого все задания были с мат.частью по матану и прочим радостям, а тут почти неизведанная степь.
0
 Аватар для Mesteriis
599 / 237 / 69
Регистрация: 08.08.2015
Сообщений: 1,637
28.12.2015, 22:41
Цитата Сообщение от ЗеХель Посмотреть сообщение
z, yz, xyz,…
только три условия, или по всему алфавиту надо?
0
24 / 21 / 3
Регистрация: 04.11.2014
Сообщений: 283
28.12.2015, 22:44  [ТС]
Цитата Сообщение от Mesteriis Посмотреть сообщение
только три условия, или по всему алфавиту надо?
По всему

Добавлено через 1 минуту
Цитата Сообщение от ЗеХель Посмотреть сообщение
только три условия, или по всему алфавиту надо?
Как я понял все слово должно быть из алфавита в обратном направлении.
0
 Аватар для Mesteriis
599 / 237 / 69
Регистрация: 08.08.2015
Сообщений: 1,637
28.12.2015, 22:48
Цитата Сообщение от ЗеХель Посмотреть сообщение
Как я понял все слово должно быть из алфавита в обратном направлении.
тогда нечего не надо удалять, нет тут какой то подвох, смотри
идет файл
Bash
1
asdf asdf wer zqwe yzasdq xyzqweqw
вот теперь вопрос что удалять?

Добавлено через 1 минуту
толи все кроме xyzqweqw толи первые три а последние оставить
0
24 / 21 / 3
Регистрация: 04.11.2014
Сообщений: 283
28.12.2015, 22:52  [ТС]
Цитата Сообщение от Mesteriis Посмотреть сообщение
вот теперь вопрос что удалять?
Все слова удалять, так как они не подходят. Программа должна оставлять только слова Z, ZY ,ZYX, ZYXW, ZYXWV и так далее, вплоть до A
0
 Аватар для Mesteriis
599 / 237 / 69
Регистрация: 08.08.2015
Сообщений: 1,637
28.12.2015, 23:26
Лучший ответ Сообщение было отмечено gru74ik как решение

Решение

ЗеХель, а все понял!!! щя все будет)))

Добавлено через 32 минуты
ЗеХель, вроде как все, посмотри повнимательнее только, если будут вопросы по коду пиши, я пока еще тут буду!
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
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
#include <iostream>
#include <ctype.h>
#include <string>
#include <fstream>
#include <unistd.h>
#include <sstream>
#include <vector>
#include <random>
#include <chrono>
 
using namespace std;
 
vector<string> str_in;  //для создания файла
vector<string> str_out; //для обработки файла
vector<string> words;   //для слов
 
inline bool GenerateFile(int sum_strok, int sum_char,const string &filename, const bool rewrite, const char view );
inline bool FillDataOutFiles();
inline bool checkWord(string const & word);
inline bool SaveAnstoFile(const string &filename, const string Word, const bool rewrite);
 
 
int main()
{
    //Генерируем файл in.txt
    if (GenerateFile(6,80,"in.txt",true,' ')) cout << "Файл заполнен\n";
    //Читаем файл in.txt
    if (FillDataOutFiles()) cout << "Файл считан\n";
    //разбиваем на слова
    for (unsigned int i=0; i<str_out.size(); ++i)
    {
        istringstream ist(str_out[i]);
        string tmp;
        while ( ist >> tmp )
            {
                words.push_back(tmp);
            }
    }
    //ghjdthztv и пишем в файл outfile.txt
    for (auto &el : words)
        if(checkWord(el)) SaveAnstoFile("outfile.txt",el,false);
   
    return EXIT_SUCCESS;
}
 
 
inline bool GenerateFile(int sum_strok, int sum_char,const string &filename, const bool rewrite, const char view )
{
    string tmp;
    tmp.clear();
    for (int i=0;i<sum_strok; ++i)
    {
        for (int ii=0; ii<sum_char;++ii)
        {
            default_random_engine g(chrono::system_clock::now().time_since_epoch().count()+ii);
            uniform_int_distribution<int> distribution(97, 123);
            int roll=distribution(g);
            if (roll==123) roll=32;
            tmp+=(char)roll;
        }
        str_in.push_back(tmp);
        tmp.clear();
    }
 
    ofstream outFile (filename, rewrite ? ios::out : ios::app);
    if (!outFile.is_open()) //проверить открыт ли файл
    {
       cout << "Unable to write " << endl;
       return false;
    }
    for (int i=0;i<sum_strok; ++i)
        outFile << str_in[i] << "\n";
    outFile.close();
    str_in.erase(str_in.begin(), str_in.end());
    if (view=='v')
        for (auto &el : str_in)
            cout << el << endl;
    return true;
}
inline bool FillDataOutFiles()
{
    ifstream inFile ("in.txt"); //создать поток
    if (!inFile.is_open()) //проверить открыт ли файл
    {
        cout << "File not read\n";
        return false;
    }
    string line;
    while (getline(inFile, line)) //прочитать строку
    {
        str_out.push_back(line);
    }
    inFile.close();
    for (auto &el : str_out)
        cout << el << endl;
    return true;
}
inline bool checkWord(string const & word)
{
    static const char * words[] = {
        "zyxwvutsrqponmlkjihgfedcba",
        "zyxwvutsrqponmlkjihgfedcb",
        "zyxwvutsrqponmlkjihgfedc",
        "zyxwvutsrqponmlkjihgfed",
        "zyxwvutsrqponmlkjihgfe",
        "zyxwvutsrqponmlkjihgf",
        "zyxwvutsrqponmlkjihg",
        "zyxwvutsrqponmlkjih",
        "zyxwvutsrqponmlkji",
        "zyxwvutsrqponmlkj",
        "zyxwvutsrqponmlk",
        "zyxwvutsrqponml",
        "zyxwvutsrqponm",
        "zyxwvutsrqpon",
        "zyxwvutsrqpo",
        "zyxwvutsrqp",
        "zyxwvutsrq",
        "zyxwvutsr",
        "zyxwvuts",
        "zyxwvut",
        "zyxwvu",
        "zyxwv",
        "zyxw",
        "zyx",
        "zy",
        "z"
    };
    for(char const * curWord : words)
        if(word == curWord)
            return true;
    return false;
}
inline bool SaveAnstoFile(const string &filename, const string Word, const bool rewrite)
{
    ofstream outFile (filename, rewrite ? ios::out : ios::app);
    if (!outFile.is_open()) //проверить открыт ли файл
    {
       cout << "Unable to write " << endl;
       return false;
    }
    outFile << Word << "\n";
    outFile.close();
    return true;
}
1
24 / 21 / 3
Регистрация: 04.11.2014
Сообщений: 283
28.12.2015, 23:31  [ТС]
Цитата Сообщение от Mesteriis Посмотреть сообщение
если будут вопросы по коду
Спасибо огромное! Сессия может объявляться открытой) Хотел запустить, но VS говорит, что не знаком с такой библиотекой.
C++
1
#include <unistd.h>
0
 Аватар для Mesteriis
599 / 237 / 69
Регистрация: 08.08.2015
Сообщений: 1,637
28.12.2015, 23:37
ЗеХель, можешь удалить))) это мои хвосты, посмотри инклюды там не все нужно, просто тандартный набор для форума)))

Добавлено через 1 минуту
ЗеХель, Еще момент файл заполняется генерацией случайным образом, так что для тестирования советую закоментить строчку 26 и создать файл руками

Добавлено через 3 минуты
ЗеХель, и еще, генерация происходит на основе таблицы символов Мака, на винде может быть другая, так что проверь этот момент, интервал задается в строчке 56
C++
1
uniform_int_distribution<int> distribution(97, 123);
97 это "a", а 123 апостроф но для удобство я его делал пробелом, что бы не рвать генерацию
0
24 / 21 / 3
Регистрация: 04.11.2014
Сообщений: 283
28.12.2015, 23:40  [ТС]
Цитата Сообщение от Mesteriis Посмотреть сообщение
файл заполняется генерацией случайным образом
Я её все равно вырежу, мне от руки заполнение нужно. И вот вопрос - где ты освоил так плюсы? Для меня колдунство какое-то, а не код)
0
 Аватар для Mesteriis
599 / 237 / 69
Регистрация: 08.08.2015
Сообщений: 1,637
28.12.2015, 23:41
ЗеХель, за 3 месяца на этом форуме))) Сам ручное заполнение сделаешь?
1
24 / 21 / 3
Регистрация: 04.11.2014
Сообщений: 283
28.12.2015, 23:46  [ТС]
Цитата Сообщение от Mesteriis Посмотреть сообщение
Сам ручное заполнение сделаешь?
Я боюсь накосячить=) Ну ты же сюда с базой какой-то пришел - не с нуля же.
0
 Аватар для Mesteriis
599 / 237 / 69
Регистрация: 08.08.2015
Сообщений: 1,637
29.12.2015, 00:02
Цитата Сообщение от ЗеХель Посмотреть сообщение
не с нуля же.
именно с него радимого, сейчас перепишу кусок и скажу что поменять!

Добавлено через 14 минут
ЗеХель, Так
с верху в низ на 21 ю строку вот это
C++
1
inline bool ManualFile(int sum_strok, const string &filename, const bool rewrite);
вместо 25 и 26
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
system ("clear");
    cout << "Как будем создавать файл?\n";
    int answen=0;
    cout << "Автогенерация файла .......... ( 1 )\n";
    cout << "Ручное заполнение ............ ( 2 )\n";
    cin >> answen;
    if (answen==1)
    {
        if (GenerateFile(6,80,"in.txt",true,' ')) cout << "Файл заполнен автоматически\n";
    } else
    {
        int sum_strok;
        cout << "Ручной режим заполнения \n" << "Введите количество строк в файле = ";cin >>sum_strok;
        ManualFile(sum_strok, "in.txt", false);
    }
и в самый конец
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
inline bool ManualFile(int sum_strok, const string &filename, const bool rewrite)
{
    string tmp;
    tmp.clear();
    for (int i=0;i<sum_strok; ++i)
    {
        cout << "введите строку не превышающею 80 символов\n";
        cin >> tmp;
        if (tmp.size()==80)
        {
            cout << "Строка принята\n";
        } else if (tmp.size()<=80)
            {
                cout << "Оптимальная размерность строки не достигнута, не хватает: "
                << 80-tmp.size() << "символов\n";
            } else
            {
                cout << "размерность строки превышена, строка обрезана\n";
                tmp=tmp.substr(0,80);
            }
        str_in.push_back(tmp);
        tmp.clear();
    }
 
    ofstream outFile (filename, rewrite ? ios::out : ios::app);
    if (!outFile.is_open()) //проверить открыт ли файл
    {
       cout << "Unable to write " << endl;
       return false;
    }
    for (int i=0;i<sum_strok; ++i)
        outFile << str_in[i] << "\n";
    outFile.close();
    str_in.erase(str_in.begin(), str_in.end());
    return true;
}
2
24 / 21 / 3
Регистрация: 04.11.2014
Сообщений: 283
29.12.2015, 00:18  [ТС]
Цитата Сообщение от Mesteriis Посмотреть сообщение
и в самый конец
В этой функции есть проверка на длину строки, если строка меньше 80 следовательно он не заносит её?
0
 Аватар для Mesteriis
599 / 237 / 69
Регистрация: 08.08.2015
Сообщений: 1,637
29.12.2015, 00:19
ЗеХель, нет, если строка меньше 80 он сообщает об этом и все равно заносит, надо что бы не заносила?
0
24 / 21 / 3
Регистрация: 04.11.2014
Сообщений: 283
29.12.2015, 00:27  [ТС]
Цитата Сообщение от Mesteriis Посмотреть сообщение
нет, если строка меньше 80 он сообщает об этом и все равно заносит, надо что бы не заносила?
Нет, как раз таки так и нужно) Только он вот что творит при заполнении хотя бы одной строки. Программа видит каждое слово как строку.
Миниатюры
Найти и сохранить в каждой строке только те слова, которые удовлетворяют условию (файловый ввод/вывод)  
0
 Аватар для Mesteriis
599 / 237 / 69
Регистрация: 08.08.2015
Сообщений: 1,637
29.12.2015, 00:36
ЗеХель, Ну это я уже сплю)) сейчас, своих уложу спать и перепишу!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
29.12.2015, 00:36
Помогаю со студенческими работами здесь

Найти слова, которые удовлетворяют условию: длина слов максимальна
Задача на Си: Дана не пустая последовательность слов (не более 50), в каждом слове не больше 8 символов. Слова разделены пробелами, за...

Вывести те слова, которые отличаются от последнего слова и удовлетворяют условию
Помогите,пожалуйста,написать программу. Дана строка длиной n символов, содержащая слова, т.е. группы символов, разделенные пробелами и...

Вывести те слова, которые отличаются от последнего слова и удовлетворяют условию
Дана строка длиной n символов, содержащая слова, т.е. группы символов, разделенные пробелами и другими разделителями (знаками ...

Вывести те слова, которые отличаются от последнего слова и удовлетворяют условию, что в слове нет повторяющихся букв
1)Вывести те слова, которые отличаются от последнего слова и удовлетворяют условию, что в слове нет повторяющихся букв. помогите плиз =)

Вывести те слова, которые отличаются от последнего слова и удовлетворяют условию, что в слове нет повторяющихся букв
Короче я сделал так #include &lt;stdio.h&gt; #include &lt;ctype.h&gt; #include &lt;string.h&gt; #include &lt;stdlib.h&gt; void main() { int const...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru