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

Чтение положительных чисел из строки - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 14, средняя оценка - 4.64
iandi
1 / 1 / 0
Регистрация: 21.11.2010
Сообщений: 20
25.11.2011, 03:11     Чтение положительных чисел из строки #1
Здравствуйте. Есть задача: дана строка с числами, разделенными пробелами. Необходимо из строки сохранить положительные числа. Разделение сделал, но как можно полученные подстроки перевести в числа и положительные записать в массив?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.11.2011, 03:11     Чтение положительных чисел из строки
Посмотрите здесь:

Найти сумму всех чисел положительных чисел файла. C++
Найти сумму отрицательных чисел и количество положительных чисел массива с четными индексами C++
C++ как вычислить количество простых чисел среди положительных чисел массива
C++ Чтение вещественных чисел из строки
C++ Найти номер строки, которая начинается с К положительных чисел подряд
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alexcoder
1438 / 652 / 86
Регистрация: 03.06.2009
Сообщений: 3,286
Завершенные тесты: 1
25.11.2011, 09:45     Чтение положительных чисел из строки #2
http://ru.wikipedia.org/wiki/Atoi
PointsEqual
ниначмуроФ
 Аватар для PointsEqual
832 / 516 / 33
Регистрация: 12.10.2009
Сообщений: 1,915
25.11.2011, 10:17     Чтение положительных чисел из строки #3
C++
1
2
3
4
5
6
7
8
9
10
11
12
int s2i(const std::string& str)
{
    istringstream ss(str);
 
    int res;
 
     ss >> res;
 
     return res;
}
 
//str - подстрока (число)
xAtom
 Аватар для xAtom
910 / 735 / 60
Регистрация: 09.12.2010
Сообщений: 1,346
Записей в блоге: 1
25.11.2011, 10:46     Чтение положительных чисел из строки #4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
using namespace std;
 
int main()
{
   char str[] = "100 200 300 -3 400 500 -1 600 700";
 
   int arr[7] = {0};
   int size = sizeof(arr)/sizeof(arr[0]);
   int cnt = 0, num = 0, pos = 0;
 
   for(char* ptr = str; sscanf(ptr, "%d%n", &num, &pos) > 0; ptr += pos) {
         if(num > -1 && cnt < size)
            arr[cnt++] = num;
   }
    
   for(int i = 0; i < cnt; i++)
        cout << arr[i] << endl;
    cin.get();
    return 0;
}
Yandex
Объявления
25.11.2011, 10:46     Чтение положительных чисел из строки
Ответ Создать тему
Опции темы

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