0 / 0 / 0
Регистрация: 24.11.2009
Сообщений: 5
1

подсчет символов

24.11.2009, 15:25. Показов 1068. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите пожалуйста решить задачку. я полный нуб в с++ но очень нужно решение. Написать программу, которая считывает текстовый файл и выводит на экран какие буквы встречаются в этом файле, а также какое их количество.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.11.2009, 15:25
Ответы с готовыми решениями:

Подсчет символов UTF-8. Считывание пробельных символов
Написал программу считывания файла с кодировкой UTF-8. Но она не считывает пробельные символы....

Матрица и одномерный массив (Составить одномерный массив, содержащий количество буквенных символов в каждом из ее столбцов, подсчет символов)
Помогите решить задачку: Дана матрица 5х7, элементами которой являются значения символьного типа....

Не работает подсчет символов
В учебнике Керна дается такой пример для подсчета символов. В результате в консоли ничего не...

Подсчет количества символов
написать программу какая с позиционной системы счисления выводит как число в десятичной системе...

9
Быдлокодер
512 / 298 / 85
Регистрация: 22.11.2009
Сообщений: 892
24.11.2009, 15:34 2
"выводит на экран какие буквы встречаются в этом файле"

Это как "а - 21 раз, б - 7 раз"
или просто вывод буквы, которая встретилась в файле?
1
0 / 0 / 0
Регистрация: 24.11.2009
Сообщений: 5
24.11.2009, 15:36  [ТС] 3
Это как "а - 21 раз, б - 7 раз"
да, именно так.
0
Быдлокодер
512 / 298 / 85
Регистрация: 22.11.2009
Сообщений: 892
24.11.2009, 15:40 4
Программа которая читает символ файла
C++
1
2
3
4
5
6
7
8
#include < stdio.h >
using namespace std;
long a;
int main()
{
  freopen("input.txt","r",stdin);
  scanf("%ld",&a);
}
Давайте, давайте, я то так и останетесь
я полный нуб в с++
1
0 / 0 / 0
Регистрация: 24.11.2009
Сообщений: 5
24.11.2009, 16:20  [ТС] 5
спасибо. Если выложишь программу целиком буду очень благодарен.
0
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
12242 / 7409 / 1737
Регистрация: 25.07.2009
Сообщений: 13,602
24.11.2009, 16:27 6
Цитата Сообщение от irsman Посмотреть сообщение
Написать программу, которая считывает текстовый файл и выводит на экран какие буквы встречаются в этом файле, а также какое их количество.
Вот на С и для английских букв.
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
#include <stdio.h>
#include <limits.h>
#include <ctype.h>
#include <string.h>
#include <stdlib.h>
 
int main(void){
    char *default_name = "simple.txt";
    FILE *fin;
    char *fin_name;
    char prompt[BUFSIZ];
    char symbols[UCHAR_MAX + 1] = { 0 };
    size_t i;
    int c;
    
    printf("Input file [%s]: ", default_name);
    fgets(prompt, BUFSIZ, stdin);
    if ( !prompt ){
        printf("Shit happens!\n");
        exit(1);
    }
    if ( *prompt == '\n' ){
        fin_name = default_name;
    }
    else{
        i = strlen(prompt) - 1;
        prompt[i] = ( prompt[i] == '\n' ) ? '\0' : prompt[i];
        fin_name = prompt;
    }
    
    if ( (fin = fopen(fin_name, "r")) == NULL ){
        printf("Can't open file %\n", fin_name);
        exit(1);
    }
    
    while ( (c = fgetc(fin)) != EOF )
        (symbols[ c ])++;
    
    fclose(fin);
    
    for ( i = 0; i < UCHAR_MAX + 1; i++ )
        if ( isprint(i) && symbols[i] > 0 )
            printf("'%c' meet %d times\n", (unsigned char)i, symbols[i]);
    
    return 0;
}
1
0 / 0 / 0
Регистрация: 24.11.2009
Сообщений: 5
24.11.2009, 16:31  [ТС] 7
easybudda, спасибо.

а что скажете если так сделать?

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream> 
#include <cstdio> 
using namespace std ; 
 
int cnt[2][26] ; 
int main () 
{ 
   freopen ("input.txt","r",stdin) ; 
   int c = getchar() ; 
   while (c != EOF) 
   { 
      if (c >= 'a' && c <= 'z') cnt[0][c - 'a']++ ; 
      if (c >= 'A' && c <= 'Z') cnt[1][c - 'A']++ ; 
      c = getchar() ; 
   } 
   for (char c = 'a'; c <= 'z'; c++) 
      if (cnt[0][c - 'a'] > 0) printf ("%c has been found in the text %d time(s)\n", c, cnt[0][c - 'a']) ; 
   for (char c = 'A'; c <= 'Z'; c++) 
      if (cnt[1][c - 'A'] > 0) printf ("%c has been found in the text %d time(s)\n", c , cnt[1][c - 'A']) ; 
   return 0 ; 
}
0
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
12242 / 7409 / 1737
Регистрация: 25.07.2009
Сообщений: 13,602
24.11.2009, 16:33 8
Цитата Сообщение от irsman Посмотреть сообщение
а что скажете если так сделать?
Если работает, то можно и так...

Скомпилировал, сравнил вывод со своим - то же самое.
1
0 / 0 / 0
Регистрация: 24.11.2009
Сообщений: 5
24.11.2009, 20:15  [ТС] 9
помогите ещё поажалуйста. препод говорит надо в начале программы ( той что я писал вышел) в начале принудительно обнулить массив, как это сделать?
0
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
12242 / 7409 / 1737
Регистрация: 25.07.2009
Сообщений: 13,602
24.11.2009, 20:33 10
Цитата Сообщение от irsman Посмотреть сообщение
помогите ещё поажалуйста. препод говорит надо в начале программы ( той что я писал вышел) в начале принудительно обнулить массив, как это сделать?
Либо по-тупому
C++
1
2
3
4
int cnt[2][26];
for ( int i = 0; i < 2; i++ )
    for ( int j = 0; j < 26; j++ )
        cnt[i][j] = 0;
либо по-хитрому
C++
1
2
3
4
#include <cstring>
...
int cnt[2][26];
memset(cnt, 0, sizeof(cnt));
либо по-простому
C++
1
int cnt[2][26] = { 0 };
1
24.11.2009, 20:33
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
24.11.2009, 20:33
Помогаю со студенческими работами здесь

Подсчет символов в числе.
Нужно ввести с клавиатуры число и подсчетать в нем кол-во символов. Как это сделать?

Подсчет символов в массиве
Я только начал изучать С++, в терминах еще плаваю, прошу помочь с решением задачки. Подсчет...

Подсчет символов в файле
Нужно найти сколько в файле букв (а,б,в...) алфавита. Не могу понять как делать. Начал с самого...

Подсчет введенных символов
Всем добрый день. Начал изучать С++ (чисто для себя) по книгде Г. Шилдта - &quot;С++ Руководство для...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru