ВОПРОС · Q&A

Помогите найти ошибку

49 ответов 21,3 тыс.
Интересно, а людям, которые программируют всякие маленькие железки, да т не тольео, в которых самый распоследний компилятор не всунешь, удавиться?
А я-то тут в чём виновен? Уверяю вас, что последние нововедения не так уж сильно повлияли на объём. Да и разговор не об этом..
 
9a9z9a,
А какую ошибку выдаёт компилятор? И ещё вопрос, тебе обязательно нужен tmp? Может достаточно такого преобразования:
C++:
char S[10] = "1234578";
int p = atoi(S);
 
9a9z9a,
А какую ошибку выдаёт компилятор? И ещё вопрос, тебе обязательно нужен tmp? Может достаточно такого преобразования:
C++:
char S[10] = "1234578";
int p = atoi(S);


ierofant, спасибо. Мне нужно было выделять по одному символу чтобы перевернуть через цикл эту строку и записать в int. Это для создания класса арифметики больших чисел. Но я ведь могу воспользоваться strrev(char*) для инвертирования строки, а потом уже записать в p через atoi(char*). Это в общем случае. Мне же нужно записать в массив эту перевёрнутую строку, т.е. по каждому индексу по одному символу из строки. Тут уже потребуется вытаскивание символа из строки и запись и массив. Как это лучше всего организовать?
 
Я бы сделал это так:
C++:
#include <string>
#include <algorithm>
#include <cstdlib>

...

std::string str = "12345678";
std::reverse (str.begin (), str.end ());
int p = std::atoi (str.c_str ());
 
9a9z9a

C++:
char s[10] = "123";
int m=1, sum=0;
size_t i;
for (i = 0; i < strlen(s); ++i, m*=10)
sum+=((int)s[i] - (int)'0') * m;
 
Я бы сделал это так:
C++:
#include <string>
#include <algorithm>
#include <cstdlib>

...

std::string str = "12345678";
std::reverse (str.begin (), str.end ());
int p = std::atoi (str.c_str ());

ierofant, спасибо за совет. Вы пишете на C++ великолепно и компактно,но как научиться писать такой код? Можете посоветовать книгу?
 
Смотря какие вас аспекты интересуют. Код, который выше, основан на STL по нему я могу порекомендовать книгу:
http://www.compsovet.info/book/programming...vo-2-e-izd.html

ierofant, спасибо, почитаю. Какие основы необходимо знать для этой книги? Что вообще требуется для освоения программирования? Я начал изучать программирование месяца 3 назад и хотел бы узнать Ваши и рекомендации других участников форума.
 
Конкретно, чтобы научится пользоваться STL достаточно знать только основы языка и, в некоторых случаях, уметь делать простые операции с шаблонами. Но и STL-ем тоже всё не исчерпывается. Для крупных (ну и средних) проектов неплохо изучить приёмы ООП.