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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Alendorff
0 / 0 / 0
Регистрация: 25.01.2012
Сообщений: 49
#1

Каждый символ строки записать в целочисленный массив - C++

07.06.2012, 18:11. Просмотров 1020. Ответов 5
Метки нет (Все метки)

char to int

Здравствуйте. Вопрос, простой.
У меня есть строка "123456789"
Мне нужно каждый символ из этой строки записать в целочисленный массив.
C++
1
2
3
4
5
6
7
    while(optarg[z]!='\0') {size1++;z++;}
    a=new int[size1];
    z=0; 
    for (int i=0; i<size1; i++)
    {
      a[i]=atoi(&optarg[i]);
    }
Так явно не правильно потому что получается вот такой вот массив:

123456789
23456789
3456789
456789
56789
6789
789
89
9

Я так подозревал, что optarg - это строка, т.е. массив символов, т.е. каждый символ можно считать отдельно и записать как отдельное число. Или я не прав?
Как правильно?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.06.2012, 18:11     Каждый символ строки записать в целочисленный массив
Посмотрите здесь:

C++ Преобразовать строку, удалив каждый символ * и повторив каждый символ, отличный от *
В строке скопировать каждый второй символ в конец строки C++
Написать функцию, которая удваивает каждый символ строки C++
C++ Написать функцию, которая удваивает каждый символ строки.
Преобразовать строку, удалив каждый символ «*» и повторив каждый символ, отличный от «*» C++
Преобразовать строку, удалив каждый символ * и удвоив каждый символ, отличный от * C++
Строки: заменить каждый символ '/' на пару символов ':' C++
C++ Преобразовать строку, удалив каждый символ * и повторив каждый символ, отличный от *
C++ Сделать реверс строки и каждый четвёртый символ выкинуть
C++ Вывести каждый второй символ строки
C++ Вводися строка. Удвоить каждый символ строки
C++ Заменить каждый второй элемент строки на заданный символ

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
kent
Нуб со стажем
36 / 34 / 2
Регистрация: 19.02.2012
Сообщений: 118
07.06.2012, 19:34     Каждый символ строки записать в целочисленный массив #2
C++
1
2
3
4
unsigned int len=strlen(optarg);
int *ar=new[len];
for(int i=0;i<len;++i)
    ar[i]=atoi(optarg[i]);
Somebody
2777 / 1591 / 142
Регистрация: 03.12.2007
Сообщений: 4,169
Завершенные тесты: 1
07.06.2012, 20:13     Каждый символ строки записать в целочисленный массив #3
C++
1
a[i] = optarg[i] - '0';
rinat_w
89 / 85 / 4
Регистрация: 13.11.2011
Сообщений: 192
Завершенные тесты: 1
07.06.2012, 20:25     Каждый символ строки записать в целочисленный массив #4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include<iostream>
#include<string>
using namespace std;
int main(){
    string str="123456789";
    int *a=new int[str.size()];
    for (int i=0; i<str.size(); i++){
        a[i]=(int)str[i]-48;
        cout<<a[i]<<" ";
    }
system("pause");
return 0;
}
Alendorff
0 / 0 / 0
Регистрация: 25.01.2012
Сообщений: 49
08.06.2012, 06:25  [ТС]     Каждый символ строки записать в целочисленный массив #5
Bash
1
2
3
maxim@maxim:~/j/Program$ g++ jprog.cpp -o jrun
jprog.cpp: In function ‘int main(int, char**)’:
jprog.cpp:53: error: request for member ‘sizein ‘optarg’, which is of non-class type ‘char*
C++
1
2
3
4
    int size1=optarg.size(); //53-я строка
    int *a=new int [size1];
    for (int i=0; i<size1; i++){
        a[i]=(int)optarg[i]-48;
Добавлено через 9 минут
Цитата Сообщение от Somebody Посмотреть сообщение
C++
1
a[i] = optarg[i] - '0';
а вот это работает, да... а что значит эта запись? optarg[i] это i-й элемент строки, так? А -'0' ?
Somebody
2777 / 1591 / 142
Регистрация: 03.12.2007
Сообщений: 4,169
Завершенные тесты: 1
08.06.2012, 11:08     Каждый символ строки записать в целочисленный массив #6
Цитата Сообщение от Alendorff Посмотреть сообщение
а вот это работает, да... а что значит эта запись? optarg[i] это i-й элемент строки, так? А -'0' ?
'0' - то же, что и 48, только более наглядно. char - это же обычный целочисленный тип, а символы - те же числа.
Yandex
Объявления
08.06.2012, 11:08     Каждый символ строки записать в целочисленный массив
Ответ Создать тему
Опции темы

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