Как перевести string в массив integer в с++?

Пользователь

от chloe.keebler , в категории: C/C++ , год назад

Как перевести string в массив integer в с++?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

Пользователь

от hanna_jacobson , год назад

@chloe.keebler 

Один из способов сделать это - использовать функцию std::stoi(), которая преобразует строку в целое число.


Пример:

 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
#include 
#include 
#include 

int main() {
    std::string str = "1 2 3 4 5";
    std::vector arr;
    std::string delimiter = " ";
    size_t pos = 0;
    while ((pos = str.find(delimiter)) != std::string::npos) {
        std::string token = str.substr(0, pos);
        int num = std::stoi(token);
        arr.push_back(num);
        str.erase(0, pos + delimiter.length());
    }
    int num = std::stoi(str);
    arr.push_back(num);

    for (int i : arr) {
        std::cout << i << " ";
    }
    std::cout << std::endl;

    return 0;
}


Этот код преобразует строку "1 2 3 4 5" в массив {1, 2, 3, 4, 5}.


Более подробно о использовании std::stoi() можно прочитать здесь.