Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/3: Рейтинг темы: голосов - 3, средняя оценка - 5.00
3 / 3 / 0
Регистрация: 26.03.2011
Сообщений: 114
1

Подсчет цифр и букв

20.04.2011, 08:41. Показов 586. Ответов 3
Метки нет (Все метки)

Народ, есть такая проблема! Мне нужно написать прогу, которая считывает текст из файла и определяет чего больше: цифр или букв. Я сделал её, но она работает только для одной строки, а мне нужно для нескольких строк. Помогите доделать пожалуйста!

Вот код программы:
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
#include <iostream>
#include <conio.h>
#include <fstream>
#include <string>
using namespace std;
 
void main()
{
setlocale(LC_ALL, "Russian");
char bukv[] = "АБВГДЕЁЖЗИЙКЛМНОПРСТУФЧЦШЩЪЫЬЮЯабвгдеёжзийклмнопрстуфчцшщъыьюя";
char chisla[]="1,2,3,4,5,6,7,8,9,10";
int cntbukv = 0;
int cntchisla = 0;
int i, j;
 
char str[300];
 
ifstream text("text.txt");
while (!text.eof())
    {
        text.getline(str,200);
    }
cout << "Дан текст:" << endl << str << endl;
 
for(i=0; i<strlen(str); i++)
for(j=0; j<strlen(bukv); j++)
if(str[i]==bukv[j])
cntbukv++;
 
for(i=0; i<strlen(str); i++)
for(j=0; j<strlen(chisla); j++)
if(str[i]==chisla[j])
cntchisla++;
 
cout <<"Число букв: " << cntbukv;
cout <<"\nЧисло цифр: " << cntchisla;
 
if(cntbukv > cntchisla) cout <<"\nБольше букв";
if(cntbukv < cntchisla) cout <<"\nБольше цифр";
if(cntbukv == cntchisla) cout <<"\nЧисло букв и цифр равно";
                                                                                                                                                                                                                                                                                                            
    getch();
}
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.04.2011, 08:41
Ответы с готовыми решениями:

Дан текст из букв и цифр. Определить чего больше букв или цифр. В С++
Помогите пожалуйста, очень нужно.

Последовательность из цифр, букв и знаков. Подсчитать чего больше и составить строки только из цифр, букв и знаков
Дана последовательность состоящая из цифр, букв и знаков пунктуации в произвольном порядке....

Введите с клавиатуры некоторый текст и подсчитать в нем количество слов, букв, цифр,строчных букв, заглавных б
Напишите пожалуйста программу в С++: Введите с клавиатуры некоторый текст и подсчитать в нем...

подсчет букв (цифр) в тексте на СИ++ Builder
ничего не нашел в интернете по данной теме. Задание такое: Поместить на форму компоненты ...

3
2228 / 1731 / 865
Регистрация: 21.12.2010
Сообщений: 3,074
Записей в блоге: 11
20.04.2011, 10:17 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 <fstream>
#include <cstring>
#include <windows.h>
using namespace std;
 
int main(){
    setlocale(LC_ALL, "Russian");
    SetConsoleOutputCP(1251);
    char bukv[] = "АБВГДЕЁЖЗИЙКЛМНОПРСТУФЧЦШЩЪЫЬЮЯабвгдеёжзийклмнопрстуфчцшщъыьюя"
    , cifer[]="0123456789", str[300];
    int cntbukv = 0, cntchisla = 0, i, j;
    ifstream text("1.txt");
    if(!text){cerr<<"Файл не найден\n"; return 1;}
    text.getline(str, 300, '\0');
    text.close();
    cout << "Дан текст:\n" << str << endl;
    for(i=0; i<strlen(str); i++)
        for(j=0; j<strlen(bukv); j++)
            if(str[i]==bukv[j]) cntbukv++;
    for(i=0; i<strlen(str); i++)
        for(j=0; j<strlen(cifer); j++)
            if(str[i]==cifer[j]) cntchisla++;
    cout <<"Число букв: " << cntbukv;
    cout <<"\nЧисло цифр: " << cntchisla;
    if(cntbukv > cntchisla) cout <<"\nБольше букв";
    else if(cntbukv < cntchisla) cout <<"\nБольше цифр";
    else cout <<"\nЧисло букв и цифр равно";
    return 0;
}
1
return (true);
1976 / 1111 / 219
Регистрация: 19.04.2011
Сообщений: 2,345
20.04.2011, 10:59 3
Просто читайте в буфер весь файл
C++
1
2
3
4
5
6
7
8
9
10
11
12
  
 FILE *in;
 if ((in = fopen("1.txt", "r"))!= NULL)
 {
  fseek(in, 0, SEEK_END);
  int size=ftell(in)+1;
  fseek(in, 0, SEEK_SET);
  char *str=new char[size];
  fread(str, size, 1, in);
//  printf("%s\n", str);
  fclose(in);
}
2
3 / 3 / 0
Регистрация: 26.03.2011
Сообщений: 114
20.04.2011, 18:21  [ТС] 4
Спасибо всем!
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.04.2011, 18:21

Подсчет количества цифр, букв в textbox-ах
Даны 3 texbox. В 1 водятся цифры во втором буквы в 3 их общее количества без пробела.Как это...

Дан текст. Замена латинских букв на "!", замена гласных русских букв на "-", подсчёт цифр в тексте
Условие. Написать программу на языке Паскаль (можно и в среде Delphi 7.0), реализующую решение...

Множества.Дан текст из строчных латинских букв и цифр. Определить чего – букв или цифр – больше в этом тексте
Переделать код,чтобы там были множества.Или написать новый код с множествами PROGRAM pr1; VAR...

Автомобильные номера состоят из 1,2, или 3 букв и 4 цифр. используется 30 букв, найти число таких букв
Автомобильные номера состоят из 1,2, или 3 букв и 4 цифр. используется 30 букв, найти число таких...


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

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

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