Преобразование данных

Подскажите, пожалуйста, как выполняется преобразование данных различного типа в С++? К примеру, у нас есть строка str, содержащая только символы цифр(1,2,3,4 и т.д.), и требуется посимвольно скопировать эти цифры в имеющийся массив типа int, выполнить некую операцию с массивом, и затем вернуть обработанные числа в строку. Размер массива и строки заданы заранее. В интернете нашел довольно много вариантов, но ни с одним проект не компилируется. Какую функцию корректнее всего здесь будет использовать?

Из-за очень нечеткой терминологии посоветовать что-то на 100% правильное сложно.

Если предположить, что «строка str, содержащая только символы цифр» — это char str[100], то перевод из цифр (символов) в целые числа можно сделать в стиле С:

const int SIZE = 10;
// ...
char str[SIZE];
int digits[SIZE];
// ...
for (int i = 0; i < SIZE; i++) {
    digits[i] = str[i] - '0';
}

Обратный перевод из int в символы можно сделать либо так, как показано выше, но с точностью до наоборот: str[i] = char(digits[i] + '0');, если есть уверенность, что после преобразований в digits[] только числа от 0 до 9, либо использовать функцию sprintf() для «печати в строку», либо использовать stringstream.

Внимание! Это довольно старый топик, посты в него не попадут в новые, и их никто не увидит. Пишите пост, если хотите просто дополнить топик, а чтобы задать новый вопрос — начните новый.

Ответить

Вы можете использовать разметку markdown для оформления комментариев и постов. Используйте функцию предпросмотра для проверки корректности разметки.

Пожалуйста, оформляйте исходный код в соответствии с правилами разметки. Для того, чтобы вставить код в комментарий, скопируйте его в текстовое поле ниже, после чего выделите то, что скопировали и нажмите кнопку «код» в панели инструментов. Иначе ваш код может принять нечитаемый вид.

Либо производите оформление кода вручную, следующим образом:

``` #include <iostream> using namespace std; int main() { // ... } ```

Предпросмотр сообщения

Ваше сообщение пусто.