Bezdepbonusu7Программирование: статьи и ответы

Вопрос

C++ Как преобразовать последние 4 символа массива в целое число?

Автор вопроса: stack356Ответов: 3

Я знаю, как преобразовать массив символов, содержащий числа, в целое число с помощью iostream:

char[] ar = "1234";
int num;
ar >> num;

но как мне преобразовать последние четыре символа этого массива в int?

char[] ar = "sl34nfoe11intk1234";
int num;
????;

Есть ли способ указать на элемент в массиве и начать потоковую передачу оттуда?
В идеале я бы начал потоковую передачу с максимального размера массива - 4.

  • Вы уверены, что ar >> num является допустимым кодом C++? Похоже, вы забыли stringstream. Christian Rau 27.08.2011
  • char[] ar также не является допустимым C++. wilhelmtell 27.08.2011
  • @ Кристиан, чувак, ты можешь просто сказать ему, что он не прав. :) Он должен быть новичком, который тоже не знает операций со строками.. Ajeet Ganga 27.08.2011

c++arrayscharacteriostream

Ответы

Ответ 1 · рейтинг 5 · fredoverflow

char* p = ar + strlen(ar) - 4;

Теперь p указывает на '1' из "1234", и вы можете передать p в поток.

Ответ 2 · рейтинг 2 · wilhelmtell

char ar[] = "abc1234";
std::istringstream ss(ar + 3);
int n = 0;
ss >> n;

А еще лучше используйте std::string:

std::string ar("abc1234");
std::istringstream ss(ar.substr(ar.size() - 4));

Ответ 3 · рейтинг 1 · erikH

Что о

char[] ar = "sl34nfoe11intk1234";
int num;
(ar + strlen(ar) - 4) >> num;

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы