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

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

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

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

07.06.2012, 18:11. Просмотров 1130. Ответов 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 - это строка, т.е. массив символов, т.е. каждый символ можно считать отдельно и записать как отдельное число. Или я не прав?
Как правильно?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.06.2012, 18:11
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Каждый символ строки записать в целочисленный массив (C++):

Каждый символ строки заменить на следующий за ним, а последний символ строки заменяеть первым - C++
я написал код но не могу разобраться. вот дано : ---------------------------------------------------------- В текстовом файле fin.txt...

Преобразовать строку, удалив каждый символ * и повторив каждый символ, отличный от * - C++
Кто может решить задачки по С++? Решите плиз 1. Дана строка. Указать те слова, которые содержат хотябы одну букву k. 2. Дана строка,...

Преобразовать строку, удалив каждый символ «*» и повторив каждый символ, отличный от «*» - 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]);
0
Somebody
2789 / 1603 / 145
Регистрация: 03.12.2007
Сообщений: 4,193
Завершенные тесты: 1
07.06.2012, 20:13 #3
C++
1
a[i] = optarg[i] - '0';
1
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;
}
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' ?
0
Somebody
2789 / 1603 / 145
Регистрация: 03.12.2007
Сообщений: 4,193
Завершенные тесты: 1
08.06.2012, 11:08 #6
Цитата Сообщение от Alendorff Посмотреть сообщение
а вот это работает, да... а что значит эта запись? optarg[i] это i-й элемент строки, так? А -'0' ?
'0' - то же, что и 48, только более наглядно. char - это же обычный целочисленный тип, а символы - те же числа.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.06.2012, 11:08
Привет! Вот еще темы с ответами:

Вывести каждый второй символ строки - C++
#include &lt;stdio.h&gt; #include &lt;string.h&gt; #include &lt;iostream.h&gt; int main() { char str ,ch,*p_str; int lengthWord, countWord=0; ...

Преобразовать строку, вырезав каждый символ "*" и повторив каждый символ, отличный символ "*" - C++
Здравствуйте,уважаемые форумчане!Помогите пожалуйста с написанием программ-а то завтра сдать уже надо... Препод ставит такие требования: ...

Строки: заменить каждый символ '/' на пару символов ':' - C++
Подсчитать количество пар '23' и '45' по отдельности и заменить каждый символ '/' на пару символов ': '. С использование библиотеки...

Вводися строка. Удвоить каждый символ строки - C++
Всем доброго времени суток! Вводится строка. Удвоить каждый символ строки Составьте 2 консольные программы. Одна программа решает...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
08.06.2012, 11:08
Ответ Создать тему
Опции темы

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