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

Найти и записать в выходной файл слова, в которых нет повторяющихся букв - C++

Восстановить пароль Регистрация
 
Killspamers
0 / 0 / 0
Регистрация: 17.12.2011
Сообщений: 26
25.12.2011, 15:23     Найти и записать в выходной файл слова, в которых нет повторяющихся букв #1
Привет всем! У меня такая задачка:
В произвольном тексте входного файла, содержащем не более 10 строк, в каждой строке не более 80 символов, найти и записать в выходной файл слова, в которых нет повторяющихся букв.

Нашел на форумах вот такую прогу которая выводит слова, в которых нет повторяющихся букв или буквы слова упорядочены по алфавиту. как её можно переделать под мои нужды? помогите пжлст завтра сдавать.

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
#include "stdafx.h"
#include <iostream>
#include <stdlib.h>
#include <stdio.h>
 
using namespace std;
const int SIZE =80;
void form (char*, char*);
 
void main()
{
        char buf[SIZE], outbuf[SIZE]={' '};
 
        while(cout<<"Vvedite stroky: ",
        cin.getline(buf, SIZE))
        {       
                form (buf, outbuf);
 
                cout<<"Rez: ";
                cout<<outbuf;
                cout<<endl<<endl;
        }
}
void form (char *a,char *out)
{       
        char *first=a, *end=a; 
        *out='\0';
        int k=0, flag=false, flag2=true;
        
 
        while (*first!='\0')
        {
                flag=true;
 
                while (*first==' '&&*first!='\0')
                        first++;
                end=first;
 
                while (*end!=' '&&*end)
                        end++;
 
                char *p=first;
                char *t=first;
                //проверка на повторяющиеся буквы
                while (t!=end)
                {
                        flag2=true;
                        char *w=first;
                        while (w!=t)
                        {
                                if (*w==*t)
                                {
                                        flag2=false;
                                        break;
                                }
                                w++;
                        }
                        if (flag2==false)
                                break;
                        t++;
                }
//как я понял проверка на сортировку по алфавиту
                while (first!=(end-1)&&*first)
                {
                        if (*first>*(first+1))
                        {
                                flag=false;
                                break;
                        }
                        first++;
                }
                if (flag==true&&flag2==true) //если оба условия были выполнены
                {
                        while (p!=end) //в результирующий массив копируется слово
                        *out++=*p++;
                        *out++=' ';
                        *out='\0';
                        first++;
                }
                else first=end;
                        
        }
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.12.2011, 15:23     Найти и записать в выходной файл слова, в которых нет повторяющихся букв
Посмотрите здесь:

Вывести слова, в которых нет повторяющихся букв и буквы слова упорядочены по алфавиту C++
C++ Напечатать те слова массива, в которых нет повторяющихся букв
C++ найти и вывести на экран слова, в которых нет повторяющихся букв
Строки. Напечатать слова, в которых нет повторяющихся букв C++
Записать строку в 1 файл, сделать там проверку и найти слова, в которых нет повторяющихся символов C++
Вывести все слова в предложении в которых нет повторяющихся букв C++
C++ Вывести слова, в которых нет повторяющихся букв
Напечатать слова, в которых нет повторяющихся букв C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
igorrr37
 Аватар для igorrr37
1593 / 1221 / 118
Регистрация: 21.12.2010
Сообщений: 1,868
Записей в блоге: 7
25.12.2011, 18:09     Найти и записать в выходной файл слова, в которых нет повторяющихся букв #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
#include <iostream>
#include <algorithm>
#include <string>
#include <fstream>
#include <iterator>
#include <cctype>
#include <sstream>
 
int main()
{
    std::ifstream ifs("1.txt");
    std::ofstream ofs("2.txt");
    if(ifs && ofs)
    {
        std::string s((std::istreambuf_iterator<char>(ifs)), std::istreambuf_iterator<char>());
        std::for_each(s.begin(), s.end(), [](char& c){
                     if(!isalpha(c))
                     {
                         c = ' ';
                     }
                     else if(isupper(c))
                     {
                         c = tolower(c);
                     }
                     ;});
        std::istringstream iss(s);
        std::string::size_type i, size;
        while(iss >> s)
        {
            size = s.size();
            for(i = 0; i < size; ++i)
            {
                if(s.find(s[i]) != i) break;
            }
            if( i == size )
            {
                ofs << s << '\n';
            }
        }
    }
    else
    {
        std::cerr << "Can't open file\n";
    }
    ifs.close();
    ofs.close();
}
Killspamers
0 / 0 / 0
Регистрация: 17.12.2011
Сообщений: 26
25.12.2011, 18:45  [ТС]     Найти и записать в выходной файл слова, в которых нет повторяющихся букв #3
Спасибо! А 10 строк и 80 символов это для чего дано? Нужно это в проге где-нибудь отмечать?
Yandex
Объявления
25.12.2011, 18:45     Найти и записать в выходной файл слова, в которых нет повторяющихся букв
Ответ Создать тему
Опции темы

Текущее время: 04:13. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru