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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
OLLEGATOR
Linux-оид
116 / 65 / 3
Регистрация: 15.02.2011
Сообщений: 353
#1

Подсчитать появление строчных букв... - C++

17.04.2011, 01:39. Просмотров 611. Ответов 6
Метки нет (Все метки)

Дан текстовый файл. Подсчитать число появлений в нем каждой
строчной (то есть маленькой) латинской буквы и создать строковый файл,
элементы которого имеют вид «<буква>–<число ее появлений>» (напри-
мер, «а–25»). Буквы, отсутствующие в тексте, в файл не включать. Строки
упорядочить по возрастанию кодов букв.

Пытался зделать так...

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
#include <iostream>
#include <fstream>
#include <string.h>
 
using namespace std;
const int N=1024;
 
void Info_A_B_C();
 
int main()
{
 
    Info_A_B_C();
 
}
 
void Info_A_B_C(){
 
    char *s=new char [N];
 
    ifstream f;
    f.open("Asus");
 
    if(!f){
        cout<<"Немогу открыть файл на чтение данных...";
        return ;
    }
 
    while(!f.eof()){
        f.getline(s,N);
    }
    f.close();
 
    ofstream nova;
    nova.open("Rezult");
 
    if(!nova){
        cout<<"Немогу создать файл с результатами...";
        return;
    }
 
    char *t;
    int z;
 
    for(int i=122;i>=97;i--){
        z=0;
        while(t=strchr(s,char(i))){
            z++;
            s=t+1;
        }
        nova<<char(i)<<"_"<<z<<"\n";
    }
 
    nova.close();
    delete [] s;
 
}
За любой совет спс..
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.04.2011, 01:39     Подсчитать появление строчных букв...
Посмотрите здесь:

Подсчитать общее вхождение в строку различных латинских строчных букв - C++
код #include &lt;iostream&gt; #include &lt;string&gt; using namespace std; int main() { int i, j, start, fin,k,t=0; string s; ...

Подсчитать сколько раз встречается каждая буква с учетом всех прописных и строчных букв - C++
нужно чтобы программа определила в тексте какие из символов &quot;а&quot;, &quot;о&quot;, &quot;у&quot;, &quot;ю&quot;, &quot;я&quot;, &quot;е&quot; встречаются чаще всего,затем подсчитать общее...

Дана строка. Подсчитать общее колличество прописных и строчных латинских и русских букв и вывести на консоль количество - C++
Нужно ввести с консоли строку символов (длиной до 80 символов), и вывести на консоль количество маленьких букв в строке и количество...

Количество строчных букв в строке - C++
Подсчитать количество строчных букв, то есть прописные (маленькие) в строке.

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

Проверка строчных букв на упорядоченность по алфавиту - C++
Доброго времени суток! Помогите с программой пожалуйста. Отблагодарю не только словами. Программу надо написать на языке Си иди С++,...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Overmind024
99 / 99 / 6
Регистрация: 10.09.2010
Сообщений: 267
17.04.2011, 01:55     Подсчитать появление строчных букв... #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
#include <iostream>
#include <conio.h>
#include <string.h>
using namespace std;
 
#define size 26
int main()
{ 
    int mas[size] = {0};
    char temp;
    FILE* ifile = fopen("input.txt","r");
    while(!feof(ifile))
    {
        temp = fgetc(ifile);
        if(temp>='a' && temp <='z')
        {
            mas[temp-'a']++;
        }
    }
    fclose(ifile);
 
    for(int i=0;i<size;i++)
    {
        if(mas[i])
        {
            cout << "Symbol '" << char(i+'a') << "' find " << mas[i] << " times." << endl;
        }
    }
    _getch();
    return 0;
}
Как то так.
OLLEGATOR
Linux-оид
116 / 65 / 3
Регистрация: 15.02.2011
Сообщений: 353
17.04.2011, 02:42  [ТС]     Подсчитать появление строчных букв... #3
я под линуксом пишу...у меня нет conio.h....скажите а где ошибка в моём коде ...может можно немножко мой код отредактировать...он почти рабочий..
Overmind024
99 / 99 / 6
Регистрация: 10.09.2010
Сообщений: 267
17.04.2011, 16:23     Подсчитать появление строчных букв... #4
тогда просто убери
C++
1
#include <conio.h>
и замени
C++
1
_getch();
на
C++
1
2
cin.get();
cin.get();
OLLEGATOR
Linux-оид
116 / 65 / 3
Регистрация: 15.02.2011
Сообщений: 353
17.04.2011, 17:43  [ТС]     Подсчитать появление строчных букв... #5
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
#include <iostream>
#include <string.h>
#include <fstream>
 
using namespace std;
 
#define size 26
int main()
{
        int mas[size] = {0};
        char temp;
        FILE* ifile = fopen("input.txt","r");
        
        while(!feof(ifile))
        {
                temp = fgetc(ifile);
                if(temp>='a' && temp <='z')
                {
                        mas[temp-'a']++;
                }
        }
        fclose(ifile);
 
        for(int i=0;i<size;i++)
        {
                if(mas[i])
                {
                        cout << "Symbol '" << char(i+'a') << "' find " << mas[i] << " times." << endl;
                }
        }
        cin.get();
        return 0;
}

Segmentation failured ... 13 строка..
Overmind024
99 / 99 / 6
Регистрация: 10.09.2010
Сообщений: 267
17.04.2011, 18:29     Подсчитать появление строчных букв... #6
а ты создал файл input.txt ??
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.04.2011, 22:12     Подсчитать появление строчных букв...
Еще ссылки по теме:

Замена строчных букв прописными и наоборот - C++
Очень нужен код. Прога делается в Qt SDK by Nokia v2009.03 (open source) Замена выполняется в файле, как латиница, так и русские буквы....

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

Перевод всех строчных букв в верхний регистр - C++
Переведите все строчные буквы-символы в верхний регистр

В заданной строке найти количество строчных букв - C++
Помогите написать лабу на Си!! 1.Выровнять слова в строках по ширине самой длинной строки!! 2.В заданной строке найти колличество...


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

Или воспользуйтесь поиском по форуму:
OLLEGATOR
Linux-оид
116 / 65 / 3
Регистрация: 15.02.2011
Сообщений: 353
17.04.2011, 22:12  [ТС]     Подсчитать появление строчных букв... #7
тупанул..спасибо работает..

Добавлено через 44 минуты
а можно как-то так только без постоянного открывания файла на чтение...

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
#include <iostream>
#include <fstream>
#include <string.h>
 
using namespace std;
const int N=1024;
 
void Info_A_B_C();
 
int main()
{
 
    Info_A_B_C();
 
}
 
void Info_A_B_C(){
 
    ofstream nova;
    nova.open("Rezult");
 
    if(!nova){
        cout<<"Немогу создать файл с результатами...";
        return;
    }
 
    int k;
    char temp;
 
    for(int i=122;i>=97;i--){   // Цикл англоязычного алфавита начиная с z...
        k=0;
 
        ifstream f;
        f.open("Asus");
 
        if(!f){
            cout<<"Немогу открыть файл на чтение данных...";
            return ;
        }
 
        while(!f.eof()){
            f>>temp;
            if(temp==char(i))
                k++;
        }
        if(k)
            nova<<char(i)<<"_"<<k<<"\n";
    }
 
    nova.close();
 
}
Добавлено через 2 минуты
или может можно както f при новом проходе цикла ставить в начало считываемого файла...

Добавлено через 2 часа 53 минуты
решилось...

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
#include <iostream>
#include <fstream>
 
using namespace std;
const int N=1024;
void Info_A_B_C();
 
void Show_File_Now();
 
int main()
{
 
    Info_A_B_C();
 
    Show_File_Now();
 
}
 
void Info_A_B_C(){  // Сканируем файл в поисках min букв латиници...
 
    ifstream f;
    f.open("Asus");
 
    if(!f){
        cout<<"Немогу открыть файл на чтение данных...";
        return ;
    }
 
    ofstream nova;
    nova.open("Rezult");
 
    if(!nova){
        cout<<"Немогу создать файл с результатами...";
        return;
    }
 
    int k;
    char temp;
 
    for(int i=122;i>=97;i--){   // Цикл англоязычного алфавита начиная с z...
        k=0;
 
        while(!f.eof()){
            f>>temp;
            if(temp==char(i))
                k++;
        }
        if(k)
            nova<<char(i)<<"_"<<k<<"\n";
 
        f.clear(); // Вернуть
        f.seekg(0, ios::beg); // указатель в начало...
    }
 
    nova.close();
 
}
 
void Show_File_Now(){
 
    char *s=new char [N];
 
    ifstream f;
    f.open("Asus");
 
    if(!f){
        cout<<"Немогу вывести начальный файл на экран...";
        return;
    }
 
 
    while(!f.eof()){
        f.getline(s,N);
        cout<<s<<"\n";
    }
 
    f.close();
 
    ifstream f;
    f.open("Rezult");
 
    
 
}
Yandex
Объявления
17.04.2011, 22:12     Подсчитать появление строчных букв...
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru