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

Как перевести массив строк в массив int - C++

Восстановить пароль Регистрация
 
MihaniX
 Аватар для MihaniX
134 / 44 / 1
Регистрация: 06.08.2013
Сообщений: 292
Записей в блоге: 4
29.12.2013, 19:30     Как перевести массив строк в массив int #1
C++
1
2
3
4
    for (int i=0; i<str.size(); i++)
    {
        str[i]=static_cast<int>(str[i]);
    }
есть vector <string> str;

Оно не работает...

Как сделать правильно?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Arigato
Программист
 Аватар для Arigato
278 / 175 / 94
Регистрация: 05.12.2013
Сообщений: 568
Записей в блоге: 5
29.12.2013, 19:46     Как перевести массив строк в массив int #2
Так попробуй:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <sstream>
...
    vector<int> numbers;
    stringstream ss;
    int num;
    for(int i=0;i<str.size();i++){
        ss.clear();
        ss<<str[i];
        ss>>num;
        numbers.push_back(num);
    }
    for(int i=0;i<numbers.size();i++){
        cout<<numbers[i]<<" ";
    }
Tulosba
:)
Эксперт С++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
29.12.2013, 20:03     Как перевести массив строк в массив int #3
http://www.cplusplus.com/reference/cstdlib/strtol/
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
29.12.2013, 20:47     Как перевести массив строк в массив int #4
MihaniX, если это продолжение темы аналог input().split() C++, то:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
#include <string>
#include <sstream>
#include <vector>
using namespace std;
 
int main()
{
    string str;
    getline(cin, str);
    
    stringstream s(str);
    
    vector <int> v;
    int n ;
    while (s >> n)
        v.push_back(n);
     
    return 0;
}
karaulov6
15 / 15 / 1
Регистрация: 23.03.2013
Сообщений: 140
29.12.2013, 21:03     Как перевести массив строк в массив int #5
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
#include <iostream> // cout
#include <string> // std::
#include <vector> // vector<>
using namespace std;
 
int main()
{
    vector<string> stringarray;
    stringarray.push_back("150");
    stringarray.push_back("250");
    stringarray.push_back("350");
    stringarray.push_back("1500");
    stringarray.push_back("5150");
 
    int * integerarray = new int[stringarray.size()]();
 
    for (unsigned int i = 0; i < stringarray.size(); i++)
        integerarray[i] = atoi(stringarray[i].c_str());
 
    for (unsigned int i = 0; i < stringarray.size(); i++)
        cout << "int:" << integerarray[i] << endl;
 
    stringarray.clear();
    delete[] integerarray;
    return 0;
}
У меня так работает вроде
Yandex
Объявления
29.12.2013, 21:03     Как перевести массив строк в массив int
Ответ Создать тему
Опции темы

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