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

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

Восстановить пароль Регистрация
 
OLLEGATOR
Linux-оид
 Аватар для OLLEGATOR
115 / 64 / 3
Регистрация: 15.02.2011
Сообщений: 353
17.04.2011, 01:39     Подсчитать появление строчных букв... #1
Дан текстовый файл. Подсчитать число появлений в нем каждой
строчной (то есть маленькой) латинской буквы и создать строковый файл,
элементы которого имеют вид «<буква>–<число ее появлений>» (напри-
мер, «а–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++
Дана строка Подсчитать общие количество в ней строчных латинских букв C++
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-оид
 Аватар для OLLEGATOR
115 / 64 / 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-оид
 Аватар для OLLEGATOR
115 / 64 / 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++ Количество строчных букв в строке
Подсчитать общее количество строчных латинских и русских букв, содержащихся в строке C++
C++ Введите с клавиатуры некоторый текст и подсчитать в нем количество слов, букв, цифр,строчных букв, заглавных б

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

Или воспользуйтесь поиском по форуму:
OLLEGATOR
Linux-оид
 Аватар для OLLEGATOR
115 / 64 / 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     Подсчитать появление строчных букв...
Ответ Создать тему
Опции темы

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