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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.73
ШифрКод
0 / 0 / 0
Регистрация: 29.01.2013
Сообщений: 55
#1

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

18.06.2013, 00:34. Просмотров 1705. Ответов 16
Метки нет (Все метки)

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

Подсчитать общее количество цифр и количество единиц в строке - C++
Вводится текст. Среди символов этого текста имеется несколько цифр. Подсчитать общее количество цифр и количество единиц в строке. Если в...

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

Подсчитать в строке, содержащей арифметическое выражение, количество используемых цифр и букв, заменить "+" на "-", подсчитать количество действий - C++
Ввести строку А с клавиатуры, содержащую арифметическое выражение. Подсчитать количество используемых цифр и букв. Заменить операцию "+" на...

Подсчитать количество цифр в введенной строке - C++
Прошу помочь найти ошибку в данном коде. Условие:с клавиатуры в строку вводятся числа и символы.подсчитать количество цифр в строке ...

Cтроки (подсчитать количество цифр в произвольной строке) - C++
подсчитать количество цифр в произвольной строке

В введённой пользователем строке подсчитать количество цифр - C++
Вводится строка. Подсчитать в ней количество цифр Одна программа решает задачу с использованием строк, представленных как массивы...

16
newyork7776
350 / 343 / 80
Регистрация: 21.05.2013
Сообщений: 1,311
Завершенные тесты: 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 / 0
Регистрация: 29.01.2013
Сообщений: 55
18.06.2013, 08:15  [ТС] #3
Спс!Но оно считает только если первым ввели число и его количество цыфр!Типа так : 123 авфыа -выведет '3' а нужно что бы вывело 1 так как 123 это одно число!
Вот должно быть так:
Введите строку:
фыва 314 ыап 435 ваы 4 5
В данной строке 4 числа!
0
Thinker
Эксперт С++
4228 / 2202 / 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;
}
1
ШифрКод
0 / 0 / 0
Регистрация: 29.01.2013
Сообщений: 55
18.06.2013, 08:42  [ТС] #5
Спасибо работает!Теперь нужно разобраться в програме)!
0
Thinker
Эксперт С++
4228 / 2202 / 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;
}
0
Croessmah
Ушел
Эксперт CЭксперт С++
13553 / 7704 / 872
Регистрация: 27.09.2012
Сообщений: 19,006
Записей в блоге: 3
Завершенные тесты: 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;
}
0
Thinker
Эксперт С++
4228 / 2202 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
18.06.2013, 12:19 #8
Croessmah, нужны не цифры, а числа (пост #3)

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

Не по теме:

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

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

0
Olivеr
412 / 408 / 13
Регистрация: 06.10.2011
Сообщений: 832
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;
}
0
npu3pak
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
Ушел
Эксперт CЭксперт С++
13553 / 7704 / 872
Регистрация: 27.09.2012
Сообщений: 19,006
Записей в блоге: 3
Завершенные тесты: 1
18.06.2013, 13:09 #12
Цитата Сообщение от npu3pak Посмотреть сообщение
C++
1
isdigit(str[i]) && !isdigit(str[i+1])
Если последний символ будет цифрой, то выход за пределы. А что там лежит неизвестно
0
Thinker
Эксперт С++
4228 / 2202 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
18.06.2013, 13:26 #13
Цитата Сообщение от Croessmah Посмотреть сообщение

Не по теме:


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

Не по теме:

сам в шоке


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

Не по теме:


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

Не по теме:

мой косяк

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

Все работает замечательно, даже с последним символом цифрой.
Croessmah
Ушел
Эксперт CЭксперт С++
13553 / 7704 / 872
Регистрация: 27.09.2012
Сообщений: 19,006
Записей в блоге: 3
Завершенные тесты: 1
18.06.2013, 13:58 #15
Цитата Сообщение от npu3pak Посмотреть сообщение
Все работает замечательно, даже с последним символом цифрой.
неизвестно что лежит за этой строкой!
И необходимо как минимум
C++
1
#include <string>

Не стоит уповать на реализацию компилятора
0
18.06.2013, 13:58
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.06.2013, 13:58
Привет! Вот еще темы с ответами:

Подсчитать количество букв, слов и цифр в строке - C++
Во введенной строке символов подсчитать количество букв (отдельно русского и английского алфавитов), цифр, слов, предложений. (Считать, что...

Подсчитать в ней количество цифр в заданной строке - C++
Привет всем. Вводится строка. Подсчитать в ней количество цифр. Задание легкое, через for я могу сделать: #include...

Подсчитать количество цифр в строке, которую вводит пользователь - C++
Подсчитать количество цифр в строке которую вводит пользователь. Помогите пожалуйста.

Не используя массивы, подсчитать во введенной строке символов общее количество цифр и букв S - C++
Как сделать эти программы без массива? Во введенной строке символов подсчитать общее количество цифр и букв S. С++ через Unicode ...


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

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

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