Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
gylayko
30 / 29 / 4
Регистрация: 28.09.2011
Сообщений: 448
#1

Файл: Сравнить количество цифр и букв верхнего регистра - C++

16.04.2012, 16:33. Просмотров 843. Ответов 4
Метки нет (Все метки)

задание: Сравнить количество цифр и букв верхнего регистра
понимаю, что нужно сначала использовать isalpha чтобы определить, что это не буква, а цифра; потом isupper чтобы определить буква ли это верхнего регистра! то есть цикл будет примерно такой
C++
1
2
3
4
5
6
7
for (j=0;j<длина файла;j++)
{
if (isalnum(a[j])=0)
 {kol++;}//если это не буква, значит цифра  
 if (isupper(a[j])!=0)
   {kol1++;}//определяем количество букв верхнего регистра 
}
но как определить длину файла(то есть сколько символов в файле) и вообще записать содержимое файла в массив а? поможете?
пытался вот так
C++
1
2
3
4
5
6
7
FILE *f1;
f1=fopen("failik.txt","r");
if (f1 == NULL)
 printf ("error");
  else {
    while (!feof(f1)){
    fread(&j, sizeof(int),1, f1);
работает, но в результате программы числа больше 1000.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.04.2012, 16:33
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Файл: Сравнить количество цифр и букв верхнего регистра (C++):

Не записывается буквы верхнего регистра в файл - C++
Здравствуйте! Почему буквы верхнего регистра не сохраняется на файл, нижние сохраняется. void main() { fstream FILE; ...

Создать файл, ввести символы, вывести на экран количество не латинских букв, количество цифр - C++
Есть код к заднию , но он не правильно показывает данные - киррилицу не ищет а латиницу больше выводит... Задание: Создать текстовый...

Написать функцию которая в строке заменяет все символы верхнего регистра в символы нижнего регистра - C++
Здравствуйте. помогите написать программу. Написать функцию которая в строке заменяет все символы верхнего регистра в символы нижнего...

В новом файле заменить все латинские буквы верхнего регистра на буквы нижнего регистра - C++
9. В новом файле заменить все латинские буквы верхнего регистра на буквы нижнего регистра. help

Заменить все буквы нижнего регистра в строке на буквы верхнего регистра - C++
Определить функцию, заменяющую все буквы нижнего регистра в строке на буквы верхнего регистра.

Функция преобразует буквы верхнего регистра в строке s в буквы нижнего регистра - C++
Задание: strlwr char *strlwr( char *s); Функция преобразует буквы верхнего регистра в строке s в буквы нижнего регистра. P.S....

4
alexcoder
1546 / 691 / 90
Регистрация: 03.06.2009
Сообщений: 3,664
Завершенные тесты: 1
17.04.2012, 09:26 #2
но как определить длину файла
C++
1
2
3
fseek(f,0,SEEK_END);
size=ftell(f);
fseek(f,0,SEEK_BEG);
Но я бы сделал примерно так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
FILE *f1;
f1=fopen("failik.txt","r");
if (f1 == NULL)
 printf ("error");
  else {
    while (!feof(f1)){
    fread(&j, sizeof(int),1, f1);
if (isdigit(j)!=0)
 {kol++;}//если это не буква, значит цифра  
 if (isupper(j)!=0)
   {kol1++;}//определяем количество букв верхнего регистра 
 
}
1
castaway
Эксперт С++
4887 / 3022 / 370
Регистрация: 10.11.2010
Сообщений: 11,080
Записей в блоге: 10
Завершенные тесты: 1
17.04.2012, 09:40 #3
Файл текстовый? Цифры и буквы записаны без пробелов? Значит надо считывать побайтно:
C
1
2
3
4
5
6
7
8
    int c;
    ...
    while ( 1 ) {
        c = fgetc( fp );
        if ( c == EOF ) break;
        ... // проверка и счетчик
    }
    fclose( fp );
1
gylayko
30 / 29 / 4
Регистрация: 28.09.2011
Сообщений: 448
17.04.2012, 10:52  [ТС] #4
то есть конечный код будет такой?
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
#include <stdio.h>
#include <string.h>
#include <conio.h>
#include <ctype.h>
 
void main()
{
int kol=0,kol1=0,c;
clrscr();
FILE *f1;
while ( 1 ) {
        c = fgetc( f1 );
        if ( c == EOF ) break;
if (isdigit(c)!=0)
 {kol++;}//если это не буква, значит цифра  
 if (isupper(c)!=0)
   {kol1++;}//определяем количество букв верхнего регистра 
 
}
fclose(f1);
printf("%d\n",kol);
printf("%d\n",kol1);
getch();
}
в результате все равно 0
0
castaway
Эксперт С++
4887 / 3022 / 370
Регистрация: 10.11.2010
Сообщений: 11,080
Записей в блоге: 10
Завершенные тесты: 1
17.04.2012, 10:59 #5
Попробуй открыть файл.
1
17.04.2012, 10:59
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.04.2012, 10:59
Привет! Вот еще темы с ответами:

Открыть существующий текстовый файл и копировать его в новый файл, с заменой всех букв нижнего регистра - C++
напишите программу, которая бы открывала существующий текстовый файл и копировала его в новый файл, с заменой всех букв нижнего регистра на...

Пользователь вводит строку. Определить количество букв (рус eng), количество цифр и количество остальных - C++
в чем проблема не пойму работает на английских буквах на цифрах и остальные символы вроде считает а вот русские не хочет их забивает как...

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

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


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

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

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