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

Строки - C++

Восстановить пароль Регистрация
 
amfisat
 Аватар для amfisat
67 / 67 / 1
Регистрация: 16.06.2009
Сообщений: 235
13.04.2010, 10:34     Строки #1
Всем привет! Есть такая задача: в последовательности символов найти цифры и посчитать их сумму. Делаю через ф-цию strpbrk ... - но что-то не сходится ... Кто-нибудь может помочь?

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 <iostream.h>
#include <string.h>
int main ()
{
    int sum=0;
    
    char *str = new char [];
    char *x;
    cin>>str;
    char keys[] = "1234567890";
    x = strpbrk (str, keys);
    while (x != NULL)
  {
    
    sum+=*x;
    cout<<*x<<endl;
    
    x = strpbrk (x+1,keys);
    
    
  }
cout<<sum;
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.04.2010, 10:34     Строки
Посмотрите здесь:

Добавить в конец первой строки, последние n2-n1 слов второй строки C++
C++ Скопировать второе слово каждой строки в начало следующей строки
Из символов введенной строки сформировать две строки - из цифр и букв C++
c++ Даны две строки: S1 и S2. Определить количество вхождений строки S2 в строку S1. C++
C++ Найти номер строки матрицы, наиболее отдаленный от первой строки
C++ Поменять первый элемент строки с максимальным элементом этой строки
C++ Упорядочить строки матрицы лексикографически по неубыванию первых k элементов строки.
Даны три строки: S1, S2, S3. Заменить в строке S1 первое вхождение строки S2 на S3 C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
fasked
Эксперт C++
 Аватар для fasked
4925 / 2505 / 180
Регистрация: 07.10.2009
Сообщений: 4,306
Записей в блоге: 1
13.04.2010, 10:47     Строки #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
#include <cstdlib>
 
int main()
{
    int size = 5;
    char * a = "g3q31";
 
    int sum = 0;
    for(int i = 0; i < size; ++i)
        if(isdigit(a[i]))
            sum += (int)a[i] - 0x30;
    
    std::cout << sum << std::endl;
 
    system("pause");
    return 0;
}
Yandex
Объявления
13.04.2010, 10:47     Строки
Ответ Создать тему
Опции темы

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