Аватар для ---Maxim---
1 / 1 / 0
Регистрация: 28.10.2017
Сообщений: 48

Как строку std::string конвертировать в массив целых чисел?

29.11.2018, 12:06. Показов 2947. Ответов 8
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Как строку конвертировать в массив целых чисел?
Например "1234" превратить в {1; 2; 3; 4}
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
29.11.2018, 12:06
Ответы с готовыми решениями:

Как конвертировать строку String в массив UInt8?
Есть строка var str = "test" как ее конвертировать в массив var array :

Как конвертировать System::String в std::string?
Как конвертировать system::string в std::string? А лучше сразу system::string в int.

Как совместить строку типа String, имеющуюся в коде и функцию, принимающую std::string ?
Доброго времен суток)) У меня такая проблема: есть строка типа String^ , а функция принимает string. Не знаю как их...

8
Mental handicap
 Аватар для Azazel-San
1246 / 624 / 171
Регистрация: 24.11.2015
Сообщений: 2,429
29.11.2018, 12:29
Написать функцию Atoi, которая переводит строку в число
после, полученное число из строки можно разбить пользуясь следующим алгоритмом
псевдокод
Code
1
2
3
4
5
while(n)     
{
    k = n%10;   
    n = n/10;    
}
Ну или модифицировать свою функцию atoi которая сразу бы писала в массив
1
 Аватар для ---Maxim---
1 / 1 / 0
Регистрация: 28.10.2017
Сообщений: 48
29.11.2018, 12:35  [ТС]
Цитата Сообщение от Azazel-San Посмотреть сообщение
Написать функцию Atoi, которая переводит строку в число
А если строка настолько длинная, что не поместится в int?
Например "234324823746326492934021894018423704973 2547325524356465879421584691270498325623 564563483289..."
0
Mental handicap
 Аватар для Azazel-San
1246 / 624 / 171
Регистрация: 24.11.2015
Сообщений: 2,429
29.11.2018, 12:37
Цитата Сообщение от ---Maxim--- Посмотреть сообщение
А если строка настолько длинная, что не поместится в int?
длинная арифметика
1
447 / 333 / 172
Регистрация: 01.07.2015
Сообщений: 1,162
29.11.2018, 12:38
Лучший ответ Сообщение было отмечено ---Maxim--- как решение

Решение

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
#include <iterator>
#include <vector>
#include <string>
 
using namespace std;
 
int main()
{
    string s;
    cin >> s;
 
    vector<char> a(s.length());
 
    for (int i = 0; i < s.length(); ++i)
        a[i] = s[i] - '0';
 
    copy(a.cbegin(), a.cend(), ostream_iterator<int>(cout, " "));
}
Добавлено через 31 секунду
правда может не поместиться в size_t, если работа идет на 32х битах
1
Mental handicap
 Аватар для Azazel-San
1246 / 624 / 171
Регистрация: 24.11.2015
Сообщений: 2,429
29.11.2018, 12:46
---Maxim---, или как я уже говорил вы можете писать сразу в массив, массив может быть "любой" длины, в топике что я вам скинул много разных решений, изучите их и поймете где можно чуть модернизировав, получить нужный результат

Добавлено через 5 минут
---Maxim---, как вариант украдено и переработано у автора выше
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
#include <vector>
#include <string>
 
using namespace std;
 
int main()
{
    string s;
    cin >> s;
 
    vector<int> a;
 
    for (int i = 0; i < s.length(); ++i)
        a.push_back(s[i] - '0');
 
    cout << a[2];
}
1
 Аватар для ---Maxim---
1 / 1 / 0
Регистрация: 28.10.2017
Сообщений: 48
29.11.2018, 12:51  [ТС]
ReDoX, спасибо, всё работает!
Правда я не ронял зачем нужна строка copy(a.cbegin(), a.cend(), ostream_iterator<int>(cout, " "));

Цитата Сообщение от Azazel-San Посмотреть сообщение
в топике что я вам скинул много разных решений, изучите их и поймете где можно чуть модернизировав, получить нужный результат
Спасибо!
0
19458 / 10070 / 2452
Регистрация: 30.01.2014
Сообщений: 17,750
29.11.2018, 12:59
Цитата Сообщение от ---Maxim--- Посмотреть сообщение
Правда я не ронял зачем нужна строка copy(a.cbegin(), a.cend(), ostream_iterator<int>(cout, " "));
Напечатать массив в консоли.
0
 Аватар для sistux
0 / 0 / 0
Регистрация: 29.11.2018
Сообщений: 5
29.11.2018, 13:07
наверное проще всего итерировать по строке и добавлять значения в вектор, отняв от него "0". хорошо бы еще проверять значения, что они от "0" до "9"
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
29.11.2018, 13:07
Помогаю со студенческими работами здесь

std::string конвертировать в LPCWSTR
Как преобразовать std::string в LPCWSTR?Желательно не сложной операцией?Читал про метод c_str(),но не понял как его применить в данном...

ошибка error: cannot convert 'std::string {aka std::basic_string<char>}' to 'std::string* {aka std::basic_stri
на вод поступают 2 строки типа string. определить количество вхождений строки 2 в строку 1 ошибка error: cannot convert 'std::string {aka...

Как конвертировать string в массив char
Как конвертировать string в массив char

Где и почему используют ту или иную строку std::string, char[], System::String^ ?
Где и почему используют ту или иную строку std::string, char, System::String^ ? Объясните пожалуйста где нужно использовать...

Как скопировать строку типа std::string в другую строку такого же типа?
Хотел скопировать строку #include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;string&gt; using namespace std; int _tmain(int...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

Новые блоги и статьи
Чем асинхронная логика (схемотехника) лучше тактируемой, как я думаю.
Hrethgir 14.05.2025
Помимо огромного плюса в энергоэффективности, асинхронная логика - тотальный контроль над каждым совершённым тактом, а значит - безусловная безопасность, где безконтрольно не совершится ни одного. . .
Многопоточные приложения на C++
bytestream 14.05.2025
C++ всегда был языком, тесно работающим с железом, и потому особеннно эффективным для многопоточного программирования. Стандарт C++11 произвёл революцию, добавив в язык нативную поддержку потоков,. . .
Stack, Queue и Hashtable в C#
UnmanagedCoder 14.05.2025
Каждый опытный разработчик наверняка сталкивался с ситуацией, когда невинный на первый взгляд List<T> превращался в узкое горлышко всего приложения. Причина проста: универсальность – это прекрасно,. . .
Как использовать OAuth2 со Spring Security в Java
Javaican 14.05.2025
Протокол OAuth2 часто путают с механизмами аутентификации, хотя по сути это протокол авторизации. Представьте, что вместо передачи ключей от всего дома вашему другу, который пришёл полить цветы, вы. . .
Анализ текста на Python с NLTK и Spacy
AI_Generated 14.05.2025
NLTK, старожил в мире обработки естественного языка на Python, содержит богатейшую коллекцию алгоритмов и готовых моделей. Эта библиотека отлично подходит для образовательных целей и. . .
Реализация DI в PHP
Jason-Webb 13.05.2025
Когда я начинал писать свой первый крупный PHP-проект, моя архитектура напоминала запутаный клубок спагетти. Классы создавали другие классы внутри себя, зависимости жостко прописывались в коде, а о. . .
Обработка изображений в реальном времени на C# с OpenCV
stackOverflow 13.05.2025
Объединение библиотеки компьютерного зрения OpenCV с современным языком программирования C# создаёт симбиоз, который открывает доступ к впечатляющему набору возможностей. Ключевое преимущество этого. . .
POCO, ACE, Loki и другие продвинутые C++ библиотеки
NullReferenced 13.05.2025
В C++ разработки существует такое обилие библиотек, что порой кажется, будто ты заблудился в дремучем лесу. И среди этого многообразия POCO (Portable Components) – как маяк для тех, кто ищет. . .
Паттерны проектирования GoF на C#
UnmanagedCoder 13.05.2025
Вы наверняка сталкивались с ситуациями, когда код разрастается до неприличных размеров, а его поддержка становится настоящим испытанием. Именно в такие моменты на помощь приходят паттерны Gang of. . .
Создаем CLI приложение на Python с Prompt Toolkit
py-thonny 13.05.2025
Современные командные интерфейсы давно перестали быть черно-белыми текстовыми программами, которые многие помнят по старым операционным системам. CLI сегодня – это мощные, интуитивные и даже. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru