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

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.78
Airzi
-3 / 0 / 0
Регистрация: 02.03.2011
Сообщений: 32
02.03.2011, 16:57     Напечатать в алфавитном порядке буквы,входящие в заданный текст по одному разу #1
Напечатать в алфавитном порядке буквы,входящие в заданный текст по одному разу.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.03.2011, 16:57     Напечатать в алфавитном порядке буквы,входящие в заданный текст по одному разу
Посмотрите здесь:

C++ Напечатать в алфавитном порядке все буквы, которые входят в текст по одному разу
Дан массив из строчных латинских букв. Вывести на экран в алфавитном порядке все буквы, которые входят в этот текст по одному разу C++
Напечатать в алфавитном порядке все различные русские буквы , входящие в введенный текст C++
C++ Вывести в порядке обратном алфавитному по одному разу все строчные буквы, входящие в первую строку, но не во вторую.
Дан текст из строчных латинских букв, за которым следует точка. Напечатать: б) все буквы, входящие в текст по одному разу; C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9371 / 5421 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
02.03.2011, 17:28     Напечатать в алфавитном порядке буквы,входящие в заданный текст по одному разу #2
напечатать по одному разу, или входящие по одному разу?
вот первый вариант
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
#include <string>
#include <sstream>
#include <set>
#include <algorithm>
#include <iterator>
 
int main(){
    std::string str;
 
    while ( std::cout << "String: " && std::getline(std::cin, str) && ! str.empty() ){
        std::istringstream ist(str);
        std::set<char> set;
        std::copy(std::istream_iterator<char>(ist), std::istream_iterator<char>(), std::inserter(set, set.begin()));
        std::copy(set.begin(), set.end(), std::ostream_iterator<char>(std::cout, ""));
        std::cout << std::endl;
    }
 
    return 0;
}
второй примерно такой же, только map<char, int> вместо set и вывод только тех, у которых счётчик единице равен.
Airzi
-3 / 0 / 0
Регистрация: 02.03.2011
Сообщений: 32
15.03.2011, 23:21  [ТС]     Напечатать в алфавитном порядке буквы,входящие в заданный текст по одному разу #3
спасибо
IrineK
Заблокирован
15.03.2011, 23:34     Напечатать в алфавитном порядке буквы,входящие в заданный текст по одному разу #4
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
 //Определение латинских символов, встречающихся в тексте 1 раз//////////////////////////////////
#include <iostream>
#include <fstream>
#include <string>
#define LEN 80
#define LET 26
using namespace std;
 
char latLetter[LET];
 
//подсчет для каждой из букв по одной строке////////////////////////////////////////////////////
void countLetters(char* buf, int* count)
{   int i,j, len;
    len = strlen(buf);
    for(j=0;j<len;j++)
        for(i=0;i<LET;i++) 
            if(buf[j]==latLetter[i]) count[i]++;
}
 
//чтение и обработка строки из файла////////////////////////////////////////////////////////////
void lineLetters(char* path, int* res)
{   int cur[LET], i;
    ifstream iFSTR;
    iFSTR.open(path);
    char buffer[LEN];
    if(iFSTR.is_open())
    {   while (iFSTR.good())
        {   iFSTR.getline(buffer,LEN,'\n');
                cout<<buffer<<"\n";
                for(i=0;i<LET;i++) cur[i]=0;
                countLetters(buffer,cur);
                for(i=0;i<LET;i++) res[i]+=cur[i]; 
        }
    iFSTR.close();
    }
    else 
    {   cout<<"Error opening file\n";
        cin.get();
        exit(1);
    }
}
 
/////////////////////////////////////////////////////////////////////////////////////////////////
int main()
{
char c, c_max;
int i, max=0;
//создание массива из прописных латинских букв
for(c='a',i=0; c<='z';c++,i++) latLetter[i]=c;
 
//кво повторений для каждой буквы для всех строк
int total[LET];
for(i=0;i<LET;i++) total[i]=0;
lineLetters("test.txt",total);
 
cout<<"File processed. Press ENTER to proceed\n";
cin.get();
 
//вывод результатов
system("cls");
cout<<"The following letters were used only once:\n";
for(c='a',i=0; c<='z';c++,i++)
    if(total[i]==1)
        cout<<c<<"\n";
    
cin.get();
return 0;
}
Yandex
Объявления
15.03.2011, 23:34     Напечатать в алфавитном порядке буквы,входящие в заданный текст по одному разу
Ответ Создать тему
Опции темы

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