|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
10.03.2008, 11:07 | #1 |
Регистрация: 10.03.2008
Сообщений: 3
|
прога исправляющая маленькую букву в новом предложении.
Народ, помогите чем можете.
задание: В текстовом файле хранится текст или вводится с консоли (около 10 предложений), с пунктунционными ошибками - после точки новое предложение начинается с маленькой буквы, написать программу исправляющую эту ошибку. |
10.03.2008, 11:27 | #2 |
Форумчанин
Регистрация: 31.05.2007
Сообщений: 266
|
можно делать так
создадим 2 переменных: temp и all типа string 1. Считал строку 2. проверяем каждый символ в строке если это не '.' то дописать этот символ в строку temp если '.', то следующий символ записать большим (поднять регистр) all := temp; temp := ''; и так далее |
10.03.2008, 11:37 | #3 |
Регистрация: 10.03.2008
Сообщений: 3
|
спасибо, попробую.
а каким оператором счиать каждый символ? я в дельфи тока 2 день сижу. и не знаешь какой сайт где хорошо описаны большенство переменных? |
10.03.2008, 13:12 | #4 |
Форумчанин
Регистрация: 31.05.2007
Сообщений: 266
|
можно функцией вырезания подстроки
Copy(строка, первый символ, длина вырезания) или к каждому символу можно обратиться как к массиву. Допустим, есть переменная str:string; первый символ - str[0], второй - str[1], третий - str [2] (не помню, первый символ под индексом 0 или 1) |
10.03.2008, 16:52 | #5 |
программист
Пользователь
Регистрация: 08.03.2008
Сообщений: 19
|
Под индексом 1.
Программист-Антиламер со стажем
|
10.03.2008, 17:12 | #6 | |
Участник клуба
Регистрация: 26.10.2007
Сообщений: 1,244
|
Цитата:
Как вариант это создать две строки. 1 - малые буквы(Mal), 2 - заглавные(Big). Начинаем перебор текста. При встрече точки ставим флаг. Теперь при дальнейшем "сканировании" мы смотрим не попалась ли нам буква. Как только она попалась начинаем в цикле проверять эту букву в строке Mal. Найдя такую букву мы узнаём номер большой буквы. И просто делаем замену. Если буква не встретилась, значит там стоит заглавная. Сбрасываем флаг и снова ищем точку.
Умом Россию не понять, пока не выпито ноль пять,
А если выпито ноль пять всё делом кажется не хитрым, Попытка глубже понимать уже попахивает литром... |
|
10.03.2008, 22:50 | #7 |
Регистрация: 10.03.2008
Сообщений: 3
|
я имел в виду не переменные, а процедуры и типы
|
11.03.2008, 08:34 | #8 |
Форумчанин
Регистрация: 31.05.2007
Сообщений: 266
|
Купи какую-нибудь книжку по Delphi, она лучше, чем самоучители в интернете (правда, не всегда)
|
11.03.2008, 10:23 | #9 |
Пользователь
Регистрация: 02.02.2007
Сообщений: 29
|
Есть еще вариант, без создания строк типа temp:
... var boolean prevDot; Spacer: set of char; ... prevDot := false; Spacer := [#$09, #$20, #$0D, #$0A]; // символы, пропускаемые после точки for i := 1 to length(text) do if text[i] = '.' then prevDot := true; else if (prevDot) and (not (text[i] in Spacer)) then begin text[i] := UpCase(text[i]); prevDot := false; end;
Быстро пойманный эксепшн исключением не считается
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Проблемы с контролами в новом окне | Karrde | Qt и кроссплатформенное программирование С/С++ | 1 | 13.10.2008 19:09 |
Получить сообщение о новом диске | Comer_Jus | Общие вопросы Delphi | 2 | 11.08.2008 15:26 |
Нужна помощь с алгоритмом расстановки ударения в предложении. | Gauss | Общие вопросы Delphi | 10 | 14.04.2008 15:31 |
В введенном предложении удалить все повторяющиеся слова | Алена | Помощь студентам | 5 | 21.11.2007 14:12 |
Открытие ссылки в новом окне | илья too | HTML и CSS | 1 | 14.07.2007 13:31 |