0 / 0 / 0
Регистрация: 02.04.2013
Сообщений: 33
|
||||||
1 | ||||||
Найти массив сумм цифр цифровых слов11.04.2013, 18:26. Показов 1076. Ответов 14
Метки нет Все метки)
(
Есть программка, которая с текстового файла посимвольно считывает текст.
Исключает знаки препинания, выводит каждое слово и его длину. Выводит слова, которые состоят из английских букв длиной не больше 7 символов, и заменяет все строчные буквы на заглавные. И последнее, (то что не работает): она должна еще находить массив сумм цифр цифровых слов. Но преобразовать char в int не получаеся. Что не так и как правильно сделать? И вообще может быть есть другой, более лаконичный способ решить те же задачи, чем посимвольное считывание?
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
|
|
11.04.2013, 18:26 | |
Ответы с готовыми решениями:
14
Сформировать массив из сумм цифр соответствующих элементов исходного массива
|
243 / 244 / 38
Регистрация: 08.04.2013
Сообщений: 927
|
|
11.04.2013, 18:30 | 2 |
Почему не получается преобразовать char в int?
0
|
164 / 120 / 46
Регистрация: 17.03.2013
Сообщений: 284
|
|
11.04.2013, 18:31 | 3 |
2
|
0 / 0 / 0
Регистрация: 02.04.2013
Сообщений: 33
|
||||||
11.04.2013, 18:40 [ТС] | 4 | |||||
Хех, я подозревал что должны быть какие-то встроенные функции -)
Спасибо, я упрощу код, но проблема с преобразованием остается
0
|
243 / 244 / 38
Регистрация: 08.04.2013
Сообщений: 927
|
||||||
11.04.2013, 18:46 | 5 | |||||
что мешает написать
0
|
0 / 0 / 0
Регистрация: 02.04.2013
Сообщений: 33
|
||||||
11.04.2013, 20:12 [ТС] | 6 | |||||
isalnum не видит букву "я" (в чем дело?), а функции для проверки конкретно английских букв там нет. Для цифр применил функцию оттуда Сейчас прога выглядит так:
0
|
243 / 244 / 38
Регистрация: 08.04.2013
Сообщений: 927
|
||||||
11.04.2013, 20:47 | 7 | |||||
Конечно не те. Знаете что такое ASCII? Что бы получать то,что Вам надо, необходимо вычитать код нуля.
Добавлено через 17 минут EvengarS, кроме всего прочего, не надо так напрягаться и писать кучу ||. Можно просто написать
1
|
0 / 0 / 0
Регистрация: 02.04.2013
Сообщений: 33
|
|
11.04.2013, 20:54 [ТС] | 8 |
metaluga145, спасибо, причесал код.
Может еще подскажете как решить такую ошибку: прога неправильно обрабатывает абзацы. Если слово в текстовом документе начинается с новой строки, то к этому слову приписывается еще энтер спереди, отчего получается не совсем корректное отображение при выводе слов на экран + длина этого слова на 1 больше реальной.
0
|
243 / 244 / 38
Регистрация: 08.04.2013
Сообщений: 927
|
||||||
11.04.2013, 21:08 | 9 | |||||
EvengarS, Советую вам открывать файл не так,как вы делаете,а вот так:
Я вроде бы так делал. Попробуйте. Если не поможет, поищем другой вариант.
0
|
0 / 0 / 0
Регистрация: 02.04.2013
Сообщений: 33
|
|
11.04.2013, 22:07 [ТС] | 10 |
Так не работает, не понимает оно _tfopen при таком записе, видимо там надо менять больше, чем эту строку
0
|
243 / 244 / 38
Регистрация: 08.04.2013
Сообщений: 927
|
|
11.04.2013, 22:17 | 11 |
В принципе, можно просто каждый раз удалять лишние переносы, только надо посмотреть их коды в ASCII. Если вы пишете под Linux, то код переноса 10, если же под Windows, то 13+10(если ничего не напутал). Попробуйте так еще.
Возможно чуть позже я еще что-то придумаю.
0
|
0 / 0 / 0
Регистрация: 02.04.2013
Сообщений: 33
|
|
11.04.2013, 23:16 [ТС] | 12 |
А как их удалять по этому самому коду? Что-то не могу сообразить
0
|
243 / 244 / 38
Регистрация: 08.04.2013
Сообщений: 927
|
|
11.04.2013, 23:31 | 13 |
EvengarS, прочитали текст, потом посимвольно проходим массив,в котором текст, если символ имеет такой код(переводим в инт и смотрим на значение), то удаляем его из массива.
Добавлено через 4 минуты EvengarS, а Вам вообще принципиально,чтобы оно читало вместе с переносами? Добавлено через 1 минуту И какая у Вас среда?
0
|
0 / 0 / 0
Регистрация: 02.04.2013
Сообщений: 33
|
|
11.04.2013, 23:35 [ТС] | 14 |
Если я правильно понимаю, то это можно добавить в первое условие которое я проверяю
if (!ispunct(symb) && !isblank(symb) && int(symb)!='13+10') только не уверен что правильно записал последнюю часть Мне нужно вывести из текста слова и их длины, слова полностью английскими буквами длиной не больше 7 символов, и массив сумм цифровых слов. Это можно сделать как-то кроме посмвольного считывания? Добавлено через 21 секунду Windows
0
|
243 / 244 / 38
Регистрация: 08.04.2013
Сообщений: 927
|
|||||||||||
11.04.2013, 23:55 | 15 | ||||||||||
EvengarS, я не профи,но я бы считывал все в переменную типа string(кст,заметил в коде у Вас, srting Text[100]-это массив стрингов).
нет, не правильно. Есть отдельный символ подачи строки, с кодом 10, и отдельный возврата коретки в начало, с кодом 13.
0
|
11.04.2013, 23:55 | |
Помогаю со студенческими работами здесь
15
Найти все трехзначные числа, представимые в виде сумм факториалов своих цифр (найти ошибку)
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |