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

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 37, средняя оценка - 4.89
OVERPOWER8
 Аватар для OVERPOWER8
19 / 19 / 1
Регистрация: 29.11.2009
Сообщений: 224
19.12.2009, 13:34     Количество цифр в строке #1
Написал программу, которая вычисляет количество цифр в строке.
Но программа не работает.

Что не правильно?

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
#include <iostream>
 
#include <ctype.h>
 
using namespace std;
 
 
 
int NumOfDigits(char* str)
 
{
 
    int count = 0;
 
    while(*str !=0)
 
    {
 
        if(isdigit(*str++))
 
            count++;
 
    }
 
    return count;
 
}
 
 
 
int main()
 
{
 
    char numbers[] = "874";
 
    
 
    int res = NumOfDigits(numbers);
 
    
 
    cout << res << endl;
 
    return 0;
 
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
valeriikozlov
Эксперт C++
 Аватар для valeriikozlov
4660 / 2486 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
19.12.2009, 13:43     Количество цифр в строке #2
OVERPOWER8, А как проявляется что неправильно работает? Запускал ваш код, выдает нужный результат.
Harlequin
 Аватар для Harlequin
41 / 41 / 4
Регистрация: 08.11.2009
Сообщений: 167
19.12.2009, 13:46     Количество цифр в строке #3
OVERPOWER8, может у тебя проект юникодный?
CyBOSSeR
Эксперт C++
 Аватар для CyBOSSeR
2293 / 1663 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
19.12.2009, 13:47     Количество цифр в строке #4
Что означает не работает?
Только что проверил-все работает.
outoftime
║XLR8║
 Аватар для outoftime
505 / 427 / 33
Регистрация: 25.07.2009
Сообщений: 2,297
19.12.2009, 13:49     Количество цифр в строке #5
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
#include <string>
 
using namespace std;
 
int main()
{
    string k;
    int b = 0;
    cin >> k;
    for (int i = 0; i < k.size(); ++i)
        if (isdigit(k[i])) ++b;
    cout << b << endl;
    system("pause");
    return 0;
}
Цитата Сообщение от OVERPOWER8 Посмотреть сообщение
if(isdigit(*str++))
вы уверены, что указатель не уйдет за пределы масива?
OVERPOWER8
 Аватар для OVERPOWER8
19 / 19 / 1
Регистрация: 29.11.2009
Сообщений: 224
19.12.2009, 14:43  [ТС]     Количество цифр в строке #6
НЕ работает, т. к. указатель выходит за пределы массива!

Прошу внимательнее пересмотреть мой код.

Это заметил outoftime.
outoftime
║XLR8║
 Аватар для outoftime
505 / 427 / 33
Регистрация: 25.07.2009
Сообщений: 2,297
19.12.2009, 15:00     Количество цифр в строке #7
Цитата Сообщение от OVERPOWER8 Посмотреть сообщение
НЕ работает, т. к. указатель выходит за пределы массива!
странно, почему тогда говорят что результат верен? может компилятор по своему компилит..
OVERPOWER8
 Аватар для OVERPOWER8
19 / 19 / 1
Регистрация: 29.11.2009
Сообщений: 224
19.12.2009, 15:07  [ТС]     Количество цифр в строке #8
Извиняюсь, код правильный, просто не с того файла скопировал...
outoftime
║XLR8║
 Аватар для outoftime
505 / 427 / 33
Регистрация: 25.07.2009
Сообщений: 2,297
19.12.2009, 15:12     Количество цифр в строке #9
Цитата Сообщение от OVERPOWER8 Посмотреть сообщение
Извиняюсь, код правильный, просто не с того файла скопировал...
так все-же он коректный?
OVERPOWER8
 Аватар для OVERPOWER8
19 / 19 / 1
Регистрация: 29.11.2009
Сообщений: 224
19.12.2009, 15:14  [ТС]     Количество цифр в строке #10
Да, именно.
Андрейка
409 / 213 / 23
Регистрация: 25.03.2009
Сообщений: 716
19.12.2009, 15:17     Количество цифр в строке #11
OVERPOWER8,
C++
1
2
3
4
5
6
7
8
9
10
11
#include <iostream>
#include <string>
#include <algorithm>
 
int main()
{
    std::basic_string <char> str = "aaa1123";
    std::cout << std::count_if(str.begin(), str.end(), isdigit) << std::endl;
    system("pause");
    return 0;
}
outoftime
║XLR8║
 Аватар для outoftime
505 / 427 / 33
Регистрация: 25.07.2009
Сообщений: 2,297
19.12.2009, 15:43     Количество цифр в строке #12
Андрейка, и оно пашет??
CyBOSSeR
Эксперт C++
 Аватар для CyBOSSeR
2293 / 1663 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
19.12.2009, 16:04     Количество цифр в строке #13
outoftime, конечно работает, почему бы ему не работать. Почему ты сомневаешься?

Правда я не совсем понял почему std::basic_string.
Почему не std::string? Понятно дело что те же яйца, только в профиль, но как то оно привычнее.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.12.2009, 17:52     Количество цифр в строке
Еще ссылки по теме:

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

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

Или воспользуйтесь поиском по форуму:
Андрейка
409 / 213 / 23
Регистрация: 25.03.2009
Сообщений: 716
19.12.2009, 17:52     Количество цифр в строке #14
CyBOSSeR, да можно конечно std::string но это слишком банально))
Yandex
Объявления
19.12.2009, 17:52     Количество цифр в строке
Ответ Создать тему
Опции темы

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