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

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

Войти
Регистрация
Восстановить пароль
 
 
Gothic Angelos
1 / 1 / 0
Регистрация: 29.05.2010
Сообщений: 140
#1

Скромный вопрос - C++

20.05.2011, 22:42. Просмотров 942. Ответов 21
Метки нет (Все метки)

Подскажите пожалуйста, как можно в строке содержащей буквы и цифры определить количество цифр?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.05.2011, 22:42
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Скромный вопрос (C++):

Вопрос по массивав, "институтский" вопрос. - C++
Готовлюсь к летней сессии по программированию. С++ Есть такая вот задачка (привожу как есть) В документации подобного не...

вопрос - C++
Есть код программы , в конце программы должен запрашеватся вопрос , продолжить выполнения программы да/нет если "да" то программа...

вопрос - C++
здрасте всем ,хочу научиться программировать ,подскажите где взять среду с\с++ и с чего вообще начать обучение ,я чайник полный :)

Вопрос по C++ - C++
Сколько байт памяти займут займут три структурных переменные типа time, если структура вмещает 3 поля типа int

Вопрос - C++
стоит ли учить язык програмирования С++? говорят язык отличный. И чем он хуже Делфи,Паскаля,Асемблер,ЛУА(ЛОА непомню правильности) , ПХП,...

Вопрос по #if - C++
const LEVEL = 4; #if LEVEL == 5 cout <<5<<endl; #elif LEVEL == 4 cout <<4<<endl; #else cout...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Gothic Angelos
1 / 1 / 0
Регистрация: 29.05.2010
Сообщений: 140
20.05.2011, 23:43  [ТС] #16
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
#include<iostream.h>
#include<fstream.h>
#include<string.h>
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
void ToFile();
void FromFile ();
int C4ET(char a[81],int p);
void main ()
 
{
clrscr();
char a[81];
int p;
ToFile();
 
FromFile();
C4ET(a,p);
getch();
}
void ToFile()
{
char a[81];
ofstream OUT;
OUT.open("D:/text.cpp");
if (OUT.fail())
{
cout<<"file ne otkrilca!\n";
exit(1);
}
cout<<"vvecti text:\n";
do
{
gets(a);
OUT<<a<<endl;
}
while (getch()!='0');
OUT.close();
}
void FromFile ()
{
char a[81];
ifstream Input;
Input.open("D:/text.cpp");
if (Input.fail())
{
cout<<"file ne otkrilca!\n";
exit(1);
}
 Input.close();
 }
int C4ET(char a[81],int p)
{
p=0;
 
if ( a[81]!= '0' && a[81]!='9')
return 0;
else
p++;
return (C4ET (a,p));
 
 
}
вот мой код, моё задание: "Написать рекурсивную функцию подсчёта количества цифр в текстовом файле"
в последней функции с названием C4ET пытался чтото делать, скажите как лучше поправить?
lemegeton
2923 / 1352 / 135
Регистрация: 29.11.2010
Сообщений: 2,725
20.05.2011, 23:53 #17
Это уже третий вариант задания.

Добавлено через 37 секунд
Цитата Сообщение от Gothic Angelos Посмотреть сообщение
скажите как лучше поправить?
Лучше не решать данную задачу при помощи рекурсии. Стек быстро кончится.
Gothic Angelos
1 / 1 / 0
Регистрация: 29.05.2010
Сообщений: 140
20.05.2011, 23:54  [ТС] #18
Ну задание у меня такое, так что пусть алгоритм не рационален, но нужно сделать именно так
lemegeton
2923 / 1352 / 135
Регистрация: 29.11.2010
Сообщений: 2,725
20.05.2011, 23:57 #19
Да ты уже третий раз меняешь задание.
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <stdio.h>
#include <stdlib.h>
 
size_t CountDigits(FILE *file) {
  if (feof(file))
    return 0;
  char symbol = fgetc(file);
  return ((symbol >= '0' && symbol <= '9') ? 1 : 0) + CountDigits(file);
}
 
int main(int argc, char *argv[]) {
  FILE *file = fopen("tutor169.c", "r"); // <- тут имя файла поменяй
  printf("%d\n", CountDigits(file));
  fclose(file);
  return 0;
}
Gothic Angelos
1 / 1 / 0
Регистрация: 29.05.2010
Сообщений: 140
21.05.2011, 00:33  [ТС] #20
Ну сначала я хотел просто разобраться с алгоритмом, потом заморочился на рекурсии

Добавлено через 8 минут
Я выше написал код, в котором последняя функция должна считать количество цифр среди букв, которые мы задали с клавиатуры и поместили в файл....я прошу отредактировать последнюю функцию, чтобы она выполняла поставленную задачу
lemegeton
2923 / 1352 / 135
Регистрация: 29.11.2010
Сообщений: 2,725
21.05.2011, 09:40 #21
Цитата Сообщение от Gothic Angelos Посмотреть сообщение
Я выше написал код, в котором последняя функция должна считать количество цифр среди букв, которые мы задали с клавиатуры и поместили в файл....
Не похоже на правду. Код делает какую-то ерунду.
Еще один вариант задания. Не на ходу ли ты их выдумываешь?

Цитата Сообщение от Gothic Angelos Посмотреть сообщение
я прошу отредактировать последнюю функцию, чтобы она выполняла поставленную задачу
Вообще-то функция С4ET в вашем коде в обоих параметрах получает мусор, случайные значения в памяти. Так что как её ни редактируй, поставленную выше задачу она решать не будет.

Но рекурсивный подсчет цифр в первом параметре можно реализовать примерно так.
C
1
2
3
4
int C4ET(char a[81], int p) {
  if (p > 81 || a[p] == '\0') return 0;
  return ((a[p] >= '0' && a[p] <= '9') ? 1 : 0) + C4ET(a, p + 1);
}
Напильнег
480 / 120 / 10
Регистрация: 30.09.2010
Сообщений: 473
21.05.2011, 21:19 #22
Цитата Сообщение от Gothic Angelos Посмотреть сообщение
Написать рекурсивную функцию подсчёта количества цифр в текстовом файле
В файле??? Зовите санитаров!
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.05.2011, 21:19
Привет! Вот еще темы с ответами:

Вопрос по if, else? - C++
Как сделать так чтобы программа работала по таком принципу: 1. Проверяется первое условие если оно верно - выводится оператор за ним. ...

Вопрос - C++
Никто не знает как можно вот эту программу переделать в язык паскаль #include &lt;stdio.h&gt; #include &lt;conio.h&gt; #include &lt;malloc.h&gt; void...

Вопрос - C++
Я знаю что вопрос покажится вам смешным но укажите пожалуйста ошибку я никак не могу найти а помочь некому #include&lt;iostream&gt; int...

Вопрос - C++
Приветствую Вас! 1. Необходимо просто описать как это должно работать: Дано: {max (a,b), y= {min(a,b), {|a+b|, если х=0,...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
21.05.2011, 21:19
Ответ Создать тему
Опции темы

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