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

Подсчитать количество цифр в строке - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.73
ШифрКод
0 / 0 / 0
Регистрация: 29.01.2013
Сообщений: 55
18.06.2013, 00:34     Подсчитать количество цифр в строке #1
C++
1
???
Ввести строку состоящую из цыфр и букв,и посчитать колтчество цыфр(быквы не должно брать считать к количеству)!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.06.2013, 00:34     Подсчитать количество цифр в строке
Посмотрите здесь:

C++ В последовательности символов подсчитать количество букв и количество цифр
C++ Подсчитать в строке, содержащей арифметическое выражение, количество используемых цифр и букв, заменить "+" на "-", подсчитать количество действий
Подсчитать сколько букв и цифр в строке C++
как подсчитать количиство цифр в строке? C++
Cтроки (подсчитать количество цифр в произвольной строке) C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
newyork7776
 Аватар для newyork7776
346 / 339 / 79
Регистрация: 21.05.2013
Сообщений: 1,305
Завершенные тесты: 1
18.06.2013, 00:52     Подсчитать количество цифр в строке #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream> 
using namespace std; 
int main() 
{ 
 setlocale(0, "rus");
  char str[50]; 
  cout << "Ente string = ";
  cin >> str;
  int number = 0;  // счётчик цифр
  int i; 
 
  int size = strlen(str); // размер строки
  for ( i = 0; i < size; i++)  
        if(isdigit(str[i])) number++;   // считает цифры
  cout << "Цифр в строке " <<  number;
  cout << "\n";
  system("pause");
}
Добавлено через 22 секунды
нормально или нет?
ШифрКод
0 / 0 / 0
Регистрация: 29.01.2013
Сообщений: 55
18.06.2013, 08:15  [ТС]     Подсчитать количество цифр в строке #3
Спс!Но оно считает только если первым ввели число и его количество цыфр!Типа так : 123 авфыа -выведет '3' а нужно что бы вывело 1 так как 123 это одно число!
Вот должно быть так:
Введите строку:
фыва 314 ыап 435 ваы 4 5
В данной строке 4 числа!
Thinker
Эксперт C++
 Аватар для Thinker
4215 / 2189 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
18.06.2013, 08:26     Подсчитать количество цифр в строке #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
25
#include<stdio.h>
#include<ctype.h>
int Count(char *s)
{
   int count = 0;
   for(; *s && !isdigit(*s); ++s)
      ;
   while(*s)
   {
      ++count;
      for(; *s && isdigit(*s); ++s)
         ;
      for(; *s && !isdigit(*s); ++s)
         ;
   }
   return count;
}
 
int main()
{
   char s[1024];
   fgets(s, 1024, stdin);
   printf("count = %d\n", Count(s));
   return 0;
}
ШифрКод
0 / 0 / 0
Регистрация: 29.01.2013
Сообщений: 55
18.06.2013, 08:42  [ТС]     Подсчитать количество цифр в строке #5
Спасибо работает!Теперь нужно разобраться в програме)!
Thinker
Эксперт C++
 Аватар для Thinker
4215 / 2189 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
18.06.2013, 08:54     Подсчитать количество цифр в строке #6
еще вариантик:
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
#include<stdio.h>
#include<ctype.h>
 
int notdigit(int c)
{
   return !isdigit(c);
}
 
char *F(char *s, int (*check)(int))
{
   return *s && (*check)(*s) ? F(s + 1, check) : s;
}
 
int main()
{
   char s[1024], *ps;
   int count = 0;
   fgets(s, 1024, stdin);
   ps = F(s, notdigit);
   while(*ps)
   {
      ++count;
      ps = F(ps, isdigit);
      ps = F(ps, notdigit);
   }
   printf("count = %d\n", count);
   return 0;
}
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11815 / 6794 / 769
Регистрация: 27.09.2012
Сообщений: 16,867
Записей в блоге: 2
Завершенные тесты: 1
18.06.2013, 12:17     Подсчитать количество цифр в строке #7
C++
1
2
3
4
5
6
7
8
9
10
11
#include <iostream>
#include <string>
#include <algorithm>
#include <cctype>
 
int main(){
    std::string str;
    std::cout<<"Input string ->";
    std::getline(std::cin,str);
    std::cout<<"Count: "<<std::count_if(str.begin(),str.end(),::isdigit)<<std::endl;
}
Thinker
Эксперт C++
 Аватар для Thinker
4215 / 2189 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
18.06.2013, 12:19     Подсчитать количество цифр в строке #8
Croessmah, нужны не цифры, а числа (пост #3)

<cctype> весело
Croessmah
18.06.2013, 12:25
  #9

Не по теме:

Цитата Сообщение от Thinker Посмотреть сообщение
Croessmah, нужны не цифры, а числа (пост #3)
а, точно ну если 123 - это цЫфра, то я пошел отсюдова

Цитата Сообщение от Thinker Посмотреть сообщение
<cctype> весело
что веселого?

Olivеr
 Аватар для Olivеr
411 / 407 / 13
Регистрация: 06.10.2011
Сообщений: 830
18.06.2013, 12:39     Подсчитать количество цифр в строке #10
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
#include <string>
 
int main()
{
    std::string str;
    std::getline(std::cin, str);
    int len = 0, count = 0;
    for (int i = 0; i != str.size(); ++i)
        if ( isdigit(str[i]) )
            ++len;
        else if (len) {
            ++count;
            len = 0;
        }
    if (len) ++count;
    std::cout << len;
    return 0;
}
npu3pak
Сообщений: n/a
18.06.2013, 13:05     Подсчитать количество цифр в строке #11
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream> 
using namespace std; 
int main() 
{ 
  std::string str;
  std::cout << "Ente string = ";
  std::getline(std::cin, str);
  int number = 0; 
  for (int i = 0; i < str.length(); i++)   if(isdigit(str[i]) && !isdigit(str[i+1])) number++;   
  cout << "Count of numbers " <<  number;
  cout << "\n";
}
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11815 / 6794 / 769
Регистрация: 27.09.2012
Сообщений: 16,867
Записей в блоге: 2
Завершенные тесты: 1
18.06.2013, 13:09     Подсчитать количество цифр в строке #12
Цитата Сообщение от npu3pak Посмотреть сообщение
C++
1
isdigit(str[i]) && !isdigit(str[i+1])
Если последний символ будет цифрой, то выход за пределы. А что там лежит неизвестно
Thinker
Эксперт C++
 Аватар для Thinker
4215 / 2189 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
18.06.2013, 13:26     Подсчитать количество цифр в строке #13
Цитата Сообщение от Croessmah Посмотреть сообщение

Не по теме:


ну если 123 - это цЫфра...

Не по теме:

сам в шоке


Цитата Сообщение от Croessmah Посмотреть сообщение

Не по теме:


что веселого?

Не по теме:

мой косяк

npu3pak
Сообщений: n/a
18.06.2013, 13:42     Подсчитать количество цифр в строке #14
[QUOTE=Croessmah;4737865]Если последний символ будет цифрой, то выход за пределы. А что там лежит неизвестно [/QUOTED

Все работает замечательно, даже с последним символом цифрой.
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11815 / 6794 / 769
Регистрация: 27.09.2012
Сообщений: 16,867
Записей в блоге: 2
Завершенные тесты: 1
18.06.2013, 13:58     Подсчитать количество цифр в строке #15
Цитата Сообщение от npu3pak Посмотреть сообщение
Все работает замечательно, даже с последним символом цифрой.
неизвестно что лежит за этой строкой!
И необходимо как минимум
C++
1
#include <string>

Не стоит уповать на реализацию компилятора
ШифрКод
0 / 0 / 0
Регистрация: 29.01.2013
Сообщений: 55
19.06.2013, 10:30  [ТС]     Подсчитать количество цифр в строке #16
Цитата Сообщение от Thinker Посмотреть сообщение
еще вариантик:
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
#include<stdio.h>
#include<ctype.h>
 
int notdigit(int c)
{
   return !isdigit(c);
}
 
char *F(char *s, int (*check)(int))
{
   return *s && (*check)(*s) ? F(s + 1, check) : s;
}
 
int main()
{
   char s[1024], *ps;
   int count = 0;
   fgets(s, 1024, stdin);
   ps = F(s, notdigit);
   while(*ps)
   {
      ++count;
      ps = F(ps, isdigit);
      ps = F(ps, notdigit);
   }
   printf("count = %d\n", count);
   return 0;
}
Это хорошо,спс,но я этого не учил еще!Как то не оч пойму код(

Добавлено через 9 минут
Цитата Сообщение от ШифрКод Посмотреть сообщение
Это хорошо,спс,но я этого не учил еще!Как то не оч пойму код(
Учу сейчас, но код , как говорил, не совсем понял.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.06.2013, 10:45     Подсчитать количество цифр в строке
Еще ссылки по теме:

C++ Подсчитать количество букв, слов и цифр в строке
Подсчитать в строке количество цифр и букв "S" C++
C++ Подсчитать частоту встречаемости цифр 0 - 9 в строке

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

Или воспользуйтесь поиском по форуму:
Thinker
Эксперт C++
 Аватар для Thinker
4215 / 2189 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
19.06.2013, 10:45     Подсчитать количество цифр в строке #17
посмотрите алгоритмы из постов #4 или #10

только вместо
Цитата Сообщение от Olivеr Посмотреть сообщение
C++
1
    std::cout << len;
поменяйте
C++
1
    std::cout << count;
Yandex
Объявления
19.06.2013, 10:45     Подсчитать количество цифр в строке
Ответ Создать тему
Опции темы

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