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

Количество цифр в массиве строк - C++

Восстановить пароль Регистрация
 
AlexS120
0 / 0 / 0
Регистрация: 09.05.2013
Сообщений: 19
12.05.2013, 00:12     Количество цифр в массиве строк #1
Помогите, очень нужна программа считающая количество цифр в массиве строк
мне писали такую,но в ней много ошибок...
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
// ?????????? ?????????? ????????? ???? ? ??????? ?????
#include <stdafx.h/>
#include "stdring"
#include "iostream"
#include "locale"
using namespace std;
int main()
{
string str;
usingned int k=0;
int kol=0;
cout<<"??????? ??????"<< endl;
getline(cin,str);
`while(k<str.length())
{
if((str[k]>=0) &&(str[k]<=9)) kol=kol+1;
}
cout<<"?????????? ???? ? ?????? = "<< kol<<endl;
return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.05.2013, 00:12     Количество цифр в массиве строк
Посмотрите здесь:

C++ найти количество повторяющихся в массиве цифр C++
C++ определить общее количество цифр в массиве...
C++ Найти в массиве количество простых чисел,больших суммы цифр первого числа
C++ В созданном массиве строк, подсчитать в тексте количество слов, в которых нету цифр
C++ В двумерном массиве определить количество строк, не содержащих отрицательных элементов
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11835 / 6814 / 769
Регистрация: 27.09.2012
Сообщений: 16,889
Записей в блоге: 2
Завершенные тесты: 1
12.05.2013, 06:05     Количество цифр в массиве строк #2
isdigit в помощь
GetVariable
 Аватар для GetVariable
163 / 119 / 5
Регистрация: 17.03.2013
Сообщений: 283
12.05.2013, 06:31     Количество цифр в массиве строк #3
cctype

isdigit

Добавлено через 20 секунд
http://www.cplusplus.com/reference/cctype/
AlexS120
0 / 0 / 0
Регистрация: 09.05.2013
Сообщений: 19
12.05.2013, 23:39  [ТС]     Количество цифр в массиве строк #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
// ?????????? ?????????? ????????? ???? ? ??????? ?????
 
#include "string.h"
#include "iostream"
#include "locale"
#include "cctype"
 
using namespace std;
int main()
{
    setlocale(LC_ALL, "Russian");
string str;
 int k=0;
int kol=0;
cout<<"ââåäèòå ñòðîêó"<< endl;
getline(cin,str);
while(k<str.length())
{
if((str[k]>=0) &&(str[k]<=9)) kol=kol+1;
}
cout<<"êîëëè÷åñòâî öèôð â ñòðîêå = "<< kol<<endl;
return 0;
}
AlexS120
0 / 0 / 0
Регистрация: 09.05.2013
Сообщений: 19
12.05.2013, 23:55  [ТС]     Количество цифр в массиве строк #5
дело в том,что не проходили библиотеку isdigit да и dev c++ на нее ругается...
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11835 / 6814 / 769
Регистрация: 27.09.2012
Сообщений: 16,889
Записей в блоге: 2
Завершенные тесты: 1
13.05.2013, 00:04     Количество цифр в массиве строк #6
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <string>
#include <iostream>
#include <algorithm>
#include <cctype>
using namespace std;
 
bool isdigit_pred(const unsigned char val){
    return isdigit(val);
}
 
 
int main(){
    string str;
    unsigned int k=0;
    cout<<"Enter string:"<< endl;
    getline(cin,str);
    int kol=count_if(str.begin(),str.end(),isdigit_pred);
    cout<<"Count = "<<kol<<endl;
    return 0;
}
AlexS120
0 / 0 / 0
Регистрация: 09.05.2013
Сообщений: 19
13.05.2013, 01:03  [ТС]     Количество цифр в массиве строк #7
а без использования cctype и isdigit она не решаема???
DU
1477 / 1053 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
13.05.2013, 01:11     Количество цифр в массиве строк #8
замените свой цикл на такой:
C++
1
2
3
4
5
6
7
for (int i = 0; i < str.length(); ++i)
{
  if ((str[i]>='0') &&(str[i]<='9'))
  {
    ++kol;
  }
}
ZaMaZaN4iK
Мой лучший друг-отладчик!
 Аватар для ZaMaZaN4iK
163 / 163 / 9
Регистрация: 24.06.2012
Сообщений: 662
Записей в блоге: 5
Завершенные тесты: 1
13.05.2013, 01:16     Количество цифр в массиве строк #9
Croessmah, для isdigit() не обязательно подключать cctype - isdigit() и без неё работает
AlexS120
0 / 0 / 0
Регистрация: 09.05.2013
Сообщений: 19
13.05.2013, 01:20  [ТС]     Количество цифр в массиве строк #10
Больше в программе ничего менять не надо?
AlexS120
0 / 0 / 0
Регистрация: 09.05.2013
Сообщений: 19
13.05.2013, 02:15  [ТС]     Количество цифр в массиве строк #11
Всем спасибо)))Решил вот так:
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 <string>
#include <iostream>
#include <locale>
#include <conio.h>
using namespace std;
int main()
{
     setlocale(LC_ALL, "Russian");
string str;
int k=0;
int kol=0;
cout<<"Ââåäèòå ñòðîêó"<< endl;
getline(cin,str);
for (int i = 0; i < str.length(); ++i)
{
  if ((str[i]>='0') &&(str[i]<='9'))
  {
    ++kol;
  }
}
cout<<"Êîëè÷åñòâî öèôð â ñòðîêå = "<< kol<<endl;
getch();
return 0;
}
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11835 / 6814 / 769
Регистрация: 27.09.2012
Сообщений: 16,889
Записей в блоге: 2
Завершенные тесты: 1
13.05.2013, 07:24     Количество цифр в массиве строк #12
Цитата Сообщение от ZaMaZaN4iK Посмотреть сообщение
Croessmah, для isdigit() не обязательно
Без этого хедера он не будет работать, потому что isdigit в нем объявлен. Не верите? Удалите файл
И вообще, лучше явно подключать все заголовки, чтобы не нарваться на компилятор, в котором неявно не подключается какой-то заголовок

http://www.cplusplus.com/reference/cctype/isdigit/
ZaMaZaN4iK
Мой лучший друг-отладчик!
 Аватар для ZaMaZaN4iK
163 / 163 / 9
Регистрация: 24.06.2012
Сообщений: 662
Записей в блоге: 5
Завершенные тесты: 1
13.05.2013, 10:04     Количество цифр в массиве строк #13
Croessmah, Я с вами полностью согласен, что нужно подключать данный заголовок, и я прекрасно помню, что isdigit() там обьявлен.И когда Прата читал, там тоже cctype описана.Но вот по крайней мере в MSVS 2010 и в Dev-C++ они неявно подключают cctype
Tulosba
13.05.2013, 12:02
  #14

Не по теме:

Цитата Сообщение от Croessmah Посмотреть сообщение
C++
1
int kol=count_if(str.begin(),str.end(),isdigit_pred);
Кстати, интересно, что студия съедает и без ручного предиката, с обычным isdigit.

Croessmah
13.05.2013, 12:04
  #15

Не по теме:

Цитата Сообщение от Tulosba Посмотреть сообщение
Кстати, интересно, что студия съедает и без ручного предиката, с обычным isdigit.
Попробуйте с кириллицей

Tulosba
13.05.2013, 12:26
  #16

Не по теме:

Цитата Сообщение от Croessmah Посмотреть сообщение
Попробуйте с кириллицей
В release сборке всё нормально Но я не об этом хотел сказать. А о том, что на ideone код не собирается в принципе со стандартным isdigit в качестве предиката, а в студии собирается. О проблемах рантайма пока молчу.

Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11835 / 6814 / 769
Регистрация: 27.09.2012
Сообщений: 16,889
Записей в блоге: 2
Завершенные тесты: 1
13.05.2013, 13:22     Количество цифр в массиве строк #17
Tulosba,
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <string>
#include <iostream>
#include <algorithm>
#include <cctype>
using namespace std;
typedef int (*ISPRED)(int);
 
int main(){
    string str;
    unsigned int k=0;
    cout<<"Enter string:"<< endl;
    getline(cin,str);
    int kol=std::count_if<string::iterator,ISPRED>(str.begin(),str.end(),isdigit);
    cout<<"Count = "<<kol<<endl;
    return 0;
}
есть еще один вариант, который самый разумный - не использовать using namespace std;
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <string>
#include <iostream>
#include <algorithm>
#include <cctype>
 
int main(){
    std::string str;
    unsigned int k=0;
    std::cout<<"Enter string:"<<std::endl;
    std::getline(std::cin,str);
    int kol=std::count_if(str.begin(),str.end(),isdigit);
    std::cout<<"Count = "<<kol<<std::endl;
    return 0;
}
Еще один аргумент против скидывания всего std

Добавлено через 5 минут
хотя можно использовать так:
C++
1
::isdigit
Tulosba
:)
Эксперт С++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
13.05.2013, 13:54     Количество цифр в массиве строк #18
Вот чуть модифицированный второй исходник как раз не собирается с std::isdigit (видимо из-за наличия перегруженных функций), и собирается с ::isdigit. https://ideone.com/0PoDOV
Студия же кушает оба варианта.
P.S. про явное указание параметров шаблона как-то вылетело из головы
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.05.2013, 00:20     Количество цифр в массиве строк
Еще ссылки по теме:

C++ Различное количество строк и столбцов в двумерном массиве
Найти количество строк в массиве, которые содержат максимум C++
Неизвестное количество строк в двумерном массиве C++

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

Или воспользуйтесь поиском по форуму:
AlexS120
0 / 0 / 0
Регистрация: 09.05.2013
Сообщений: 19
14.05.2013, 00:20  [ТС]     Количество цифр в массиве строк #19
спасибо всем огромное,но вот появилась не задача,программа должна считать не одну строку,а массив строк...
Yandex
Объявления
14.05.2013, 00:20     Количество цифр в массиве строк
Ответ Создать тему
Опции темы

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