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

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

Войти
Регистрация
Восстановить пароль
 
Jaksn
3 / 3 / 0
Регистрация: 26.03.2011
Сообщений: 114
#1

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

20.04.2011, 08:41. Просмотров 380. Ответов 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();
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.04.2011, 08:41     Подсчет цифр и букв
Посмотрите здесь:

Нахождение и подсчет прописных букв C++
Подсчет количества различных букв в слове C++
C++ подсчет букв во втором слове
Подсчет букв по Кернигану Ритчи C++
Подсчет латинских букв C++
Подсчет повторенияя букв C++
C++ Подсчет букв в словах в строке
Подсчет гласных букв C++
Подсчет числа согласных и гласных букв C++
Подсчет кол-ва букв в слове C++
Подсчет цифр в последовательности C++
Подсчет русских букв в строке C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
igorrr37
1618 / 1246 / 124
Регистрация: 21.12.2010
Сообщений: 1,902
Записей в блоге: 7
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;
}
mimicria
return (true);
1956 / 1093 / 91
Регистрация: 19.04.2011
Сообщений: 2,344
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);
}
Jaksn
3 / 3 / 0
Регистрация: 26.03.2011
Сообщений: 114
20.04.2011, 18:21  [ТС]     Подсчет цифр и букв #4
Спасибо всем!
Yandex
Объявления
20.04.2011, 18:21     Подсчет цифр и букв
Ответ Создать тему
Опции темы

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