![]() |
|
Модераторы: bsa |
![]()
|
|
| goodwen053 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 5.4.2011 Репутация: нет Всего: нет |
Здравствуйте, я новичок в С++, у меня есть 3 вопроса:
1. Как задать условие: если введено не число? 2. Есть трёхзначное число типа int, как мне сложить все его цифры? 3. Нужно ввести текст, он может быть разной длины, как сделать так, чтобы размер символьного одномерного массива куда заносится текст автоматически принял нужную размерность? И как с определённого элемента в одномерном символьном массиве сдвинуть вправо все остальные элементы, при этом так же увеличивая его размерность? |
|||
|
||||
| alexvs11 |
|
|||
|
hell is here ![]() ![]() Профиль Группа: Участник Сообщений: 518 Регистрация: 21.8.2010 Репутация: 2 Всего: 10 |
||||
|
||||
| Vard |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 10 Регистрация: 5.4.2011 Репутация: нет Всего: нет |
2. Воспользоваться операцией получения остатка от деления и целочисленным делением
3. Я думаю, тут необходимо динамическое выделение памяти (malloc и free либо new, delete) Это сообщение отредактировал(а) Vard - 5.4.2011, 23:40 |
||||
|
|||||
| goodwen053 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 5.4.2011 Репутация: нет Всего: нет |
alexvs11, благодарю за помощь, всё заработало.
Vard, так же благодарю за помощь, со вторым вопросом, у меня всё получилось, но я не совсем понимаю вот эту запись:
Что здесь обозначает знак "%"? |
|||
|
||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 79 Всего: 250 |
||||
|
||||
| volatile |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2107 Регистрация: 7.1.2011 Репутация: 16 Всего: 85 |
кардинальное решение 2-го вопроса
|
|||
|
||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 79 Всего: 250 |
или: итерацию по v также вынести в оглавление цикла :
|
|||
|
||||
| goodwen053 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 5.4.2011 Репутация: нет Всего: нет |
Благодарю за помощь, всё понял. А как быть с 3-вопросом? Я, как понимаю, нужно через указатели, а как увеличивать размерность символьного массива? Может для 3-вопроса есть какие либо функции по работе со строками?
|
|||
|
||||
| baldina |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3433 Регистрация: 5.12.2007 Где: Москва Репутация: 15 Всего: 101 |
в С++ есть std::string
Это сообщение отредактировал(а) baldina - 9.4.2011, 15:28 |
||||
|
|||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 79 Всего: 250 |
http://cplusplus.com/reference/string/string/c_str/ a const ? Это сообщение отредактировал(а) mes - 7.4.2011, 17:55 |
|||
|
||||
| goodwen053 |
|
||||||||
|
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 5.4.2011 Репутация: нет Всего: нет |
Я вот если так пишу, и уже в консоли набираю какой либо текст с пробелами, то он запоминает только до первого пробела. Я пытаюсь сделать вот так:
Выдаёт ошибку: [C++ Error] Unit1.cpp(16): E2285 Could not find a match for 'istream::getline(string,unsigned int)' и ссылается на вторую строку. А когда пишу вот эту строку в коде:
Выдаёт ошибку ссылаясь на эту строку в коде:[C++ Error] Unit1.cpp(19): E2285 Could not find a match for 'string::insert(int,char)' Как мне исправить эти ошибки?Компилятор у меня С++ Builder Borland 6. И не совсем понимаю вот эту строку:
Здесь переменная, где записана длина строки - это len, или size_t? Это сообщение отредактировал(а) goodwen053 - 7.4.2011, 19:45 |
||||||||
|
|||||||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 79 Всего: 250 |
site_t - тип ( аффикс _t даже пытается подсказать
|
|||
|
||||
| baldina |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3433 Регистрация: 5.12.2007 Где: Москва Репутация: 15 Всего: 101 |
||||
|
||||
| goodwen053 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 5.4.2011 Репутация: нет Всего: нет |
На счёт третьего вопроса я часть сделал (код ниже), но у меня задание, ввести текст (предложения заканчивающиеся точками) и если по ошибке после точки не был введён пробел, сдвинуть всё содержимое и поставить после точки этот пробел. Делаю, как показано ниже на коде и ничего не работает. Если ввожу текст на русском языке, он вообще ничего не выводит (должен вывести изменённый текст), а если на английском, тогда кучу символов беспорядочных, как мне это исправить?
|
|||
|
||||
| volatile |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2107 Регистрация: 7.1.2011 Репутация: 16 Всего: 85 |
это присвоение, а не проверка. нужно if(text[i]=='.' дальше, здесь вы затираете символ стоящий после точки, а не вставляете. для того чтобы вставить, я бы посоветовал сделать две строки. и копировать из одной в другую, по символьно, проверяя условие |
|||
|
||||
![]()
|
| Правила форума "C/C++: Для новичков" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |