<?php
/*
Дан неграмотно написанный текст, состоящий из нескольких предложений
на русском языке. Ошибки заключаются в неправильной расстановке
пробелов и отсутствии заглавных букв. Исправь текст так, чтобы
все предложения в нем начинались с большой буквы, а после знаков
запятая, точка, точка с запятой, двоеточие, восклицательный и
вопросительный знак стоял ровно один пробел (а перед ними — ни одного).
Составные знаки вроде многоточия или 2 вопросительных знаков подряд
должны сохраняться.
*/
/*
1. Первое слово после точки идёт через пробел и начинается с
большой буквы.
2. После всех знаков должен стоять один пробел, а до них не должно
стоять пробела.
3. Составные знаки (например многоточие и несколько вопросительных
знаков) должны оставаться
*/
{
/**
* mb_ucfirst - преобразует первый символ в верхний регистр
* @param string $str - строка
* @param string $encoding - кодировка, по-умолчанию UTF-8
* @return string
*/
function mb_ucfirst( $str , $encoding = 'UTF-8' )
{
return $str ;
}
}
//$text = "ну что. не смотрел еще black mesa.я собирался скачать ,но все как-то некогда было.";
//$text = 'roses are red,and violets are blue.whatever you do i\'ll keep it for you.';
$text = "много их в Петербурге,молоденьких дур,сегодня в атласе да бархате,а завтра , поглядишь , метут улицу вместе с голью кабацкою...в самом деле ,что было бы с нами ,если бы вместо общеудобного правила:чин чина почитай , ввелось в употребление другое,например:ум ума почитай?какие возникли бы споры!" ;
/* Делает первую букву в строке заглавной */
function makeFirstLetterUppercase( $str ) {
for ( $i = 0 ; $i < count ( $str ) ; $i ++ ) {
$newStr [ $i ] = mb_ucfirst( $str [ $i ] ) ;
}
return $newStr ;
}
/* Исправляет текст */
function fixText( $str1 ) {
return preg_replace ( "/([^\s]?)\s?([.,?!:;])\s?([^\s]?)/u" , "\$ 1\$ 2 \$ 3" , $str1 ) ;
}
// Разделяю на массив отдельных предложений
$text = preg_split ( "/(?<=[.])/u" , $text , 0 , PREG_SPLIT_NO_EMPTY
) ; // Делаю все первые буквы заглавными
$text = makeFirstLetterUppercase( $text ) ;
$result = fixText( $text ) ;
echo "{$result} \n " ;
PD9waHAKCmVycm9yX3JlcG9ydGluZygtMSk7CgoKLyoKICAgINCU0LDQvSDQvdC10LPRgNCw0LzQvtGC0L3QviDQvdCw0L/QuNGB0LDQvdC90YvQuSDRgtC10LrRgdGCLCDRgdC+0YHRgtC+0Y/RidC40Lkg0LjQtyDQvdC10YHQutC+0LvRjNC60LjRhSDQv9GA0LXQtNC70L7QttC10L3QuNC5IAogICAg0L3QsCDRgNGD0YHRgdC60L7QvCDRj9C30YvQutC1LiDQntGI0LjQsdC60Lgg0LfQsNC60LvRjtGH0LDRjtGC0YHRjyDQsiDQvdC10L/RgNCw0LLQuNC70YzQvdC+0Lkg0YDQsNGB0YHRgtCw0L3QvtCy0LrQtSAKICAgINC/0YDQvtCx0LXQu9C+0LIg0Lgg0L7RgtGB0YPRgtGB0YLQstC40Lgg0LfQsNCz0LvQsNCy0L3Ri9GFINCx0YPQutCyLiDQmNGB0L/RgNCw0LLRjCDRgtC10LrRgdGCINGC0LDQuiwg0YfRgtC+0LHRiyAKICAgINCy0YHQtSDQv9GA0LXQtNC70L7QttC10L3QuNGPINCyINC90LXQvCDQvdCw0YfQuNC90LDQu9C40YHRjCDRgSDQsdC+0LvRjNGI0L7QuSDQsdGD0LrQstGLLCDQsCDQv9C+0YHQu9C1INC30L3QsNC60L7QsiAKICAgINC30LDQv9GP0YLQsNGPLCDRgtC+0YfQutCwLCDRgtC+0YfQutCwINGBINC30LDQv9GP0YLQvtC5LCDQtNCy0L7QtdGC0L7Rh9C40LUsINCy0L7RgdC60LvQuNGG0LDRgtC10LvRjNC90YvQuSDQuCAKICAgINCy0L7Qv9GA0L7RgdC40YLQtdC70YzQvdGL0Lkg0LfQvdCw0Log0YHRgtC+0Y/QuyDRgNC+0LLQvdC+INC+0LTQuNC9INC/0YDQvtCx0LXQuyAo0LAg0L/QtdGA0LXQtCDQvdC40LzQuCDigJQg0L3QuCDQvtC00L3QvtCz0L4pLiAKICAgINCh0L7RgdGC0LDQstC90YvQtSDQt9C90LDQutC4INCy0YDQvtC00LUg0LzQvdC+0LPQvtGC0L7Rh9C40Y8g0LjQu9C4IDIg0LLQvtC/0YDQvtGB0LjRgtC10LvRjNC90YvRhSDQt9C90LDQutC+0LIg0L/QvtC00YDRj9C0IAogICAg0LTQvtC70LbQvdGLINGB0L7RhdGA0LDQvdGP0YLRjNGB0Y8uCiovCgovKgogICAgMS4g0J/QtdGA0LLQvtC1INGB0LvQvtCy0L4g0L/QvtGB0LvQtSDRgtC+0YfQutC4INC40LTRkdGCINGH0LXRgNC10Lcg0L/RgNC+0LHQtdC7INC4INC90LDRh9C40L3QsNC10YLRgdGPINGBCiAgICDQsdC+0LvRjNGI0L7QuSDQsdGD0LrQstGLLgogICAgMi4g0J/QvtGB0LvQtSDQstGB0LXRhSDQt9C90LDQutC+0LIg0LTQvtC70LbQtdC9INGB0YLQvtGP0YLRjCDQvtC00LjQvSDQv9GA0L7QsdC10LssINCwINC00L4g0L3QuNGFINC90LUg0LTQvtC70LbQvdC+CiAgICDRgdGC0L7Rj9GC0Ywg0L/RgNC+0LHQtdC70LAuCiAgICAzLiDQodC+0YHRgtCw0LLQvdGL0LUg0LfQvdCw0LrQuCAo0L3QsNC/0YDQuNC80LXRgCDQvNC90L7Qs9C+0YLQvtGH0LjQtSDQuCDQvdC10YHQutC+0LvRjNC60L4g0LLQvtC/0YDQvtGB0LjRgtC10LvRjNC90YvRhSAKICAgINC30L3QsNC60L7Qsikg0LTQvtC70LbQvdGLINC+0YHRgtCw0LLQsNGC0YzRgdGPCgoqLwoKaWYgKCFmdW5jdGlvbl9leGlzdHMoJ21iX3VjZmlyc3QnKSAmJiBleHRlbnNpb25fbG9hZGVkKCdtYnN0cmluZycpKQp7CiAgICAvKioKICAgICAqIG1iX3VjZmlyc3QgLSDQv9GA0LXQvtCx0YDQsNC30YPQtdGCINC/0LXRgNCy0YvQuSDRgdC40LzQstC+0Lsg0LIg0LLQtdGA0YXQvdC40Lkg0YDQtdCz0LjRgdGC0YAKICAgICAqIEBwYXJhbSBzdHJpbmcgJHN0ciAtINGB0YLRgNC+0LrQsAogICAgICogQHBhcmFtIHN0cmluZyAkZW5jb2RpbmcgLSDQutC+0LTQuNGA0L7QstC60LAsINC/0L4t0YPQvNC+0LvRh9Cw0L3QuNGOIFVURi04CiAgICAgKiBAcmV0dXJuIHN0cmluZwogICAgICovCiAgICBmdW5jdGlvbiBtYl91Y2ZpcnN0KCRzdHIsICRlbmNvZGluZz0nVVRGLTgnKQogICAgewogICAgICAgICRzdHIgPSBtYl9lcmVnX3JlcGxhY2UoJ15bXCBdKycsICcnLCAkc3RyKTsKICAgICAgICAkc3RyID0gbWJfc3RydG91cHBlcihtYl9zdWJzdHIoJHN0ciwgMCwgMSwgJGVuY29kaW5nKSwgJGVuY29kaW5nKS4KICAgICAgICAgICAgICAgbWJfc3Vic3RyKCRzdHIsIDEsIG1iX3N0cmxlbigkc3RyKSwgJGVuY29kaW5nKTsKICAgICAgICByZXR1cm4gJHN0cjsKICAgIH0KfQoKLy8kdGV4dCA9ICLQvdGDINGH0YLQvi4gICAgICDQvdC1INGB0LzQvtGC0YDQtdC7INC10YnQtSBibGFjayBtZXNhLtGPINGB0L7QsdC40YDQsNC70YHRjyDRgdC60LDRh9Cw0YLRjCAgLNC90L4g0LLRgdC1INC60LDQui3RgtC+INC90LXQutC+0LPQtNCwINCx0YvQu9C+LiI7Ci8vJHRleHQgPSAncm9zZXMgYXJlIHJlZCxhbmQgdmlvbGV0cyBhcmUgYmx1ZS53aGF0ZXZlciB5b3UgZG8gaVwnbGwga2VlcCBpdCBmb3IgeW91Lic7CiR0ZXh0ID0gItC80L3QvtCz0L4g0LjRhSDQsiDQn9C10YLQtdGA0LHRg9GA0LPQtSzQvNC+0LvQvtC00LXQvdGM0LrQuNGFINC00YPRgCzRgdC10LPQvtC00L3RjyDQsiDQsNGC0LvQsNGB0LUg0LTQsCDQsdCw0YDRhdCw0YLQtSzQsCDQt9Cw0LLRgtGA0LAgLCDQv9C+0LPQu9GP0LTQuNGI0YwgLCDQvNC10YLRg9GCINGD0LvQuNGG0YMg0LLQvNC10YHRgtC1INGBINCz0L7Qu9GM0Y4g0LrQsNCx0LDRhtC60L7Rji4uLtCyINGB0LDQvNC+0Lwg0LTQtdC70LUgLNGH0YLQviDQsdGL0LvQviDQsdGLINGBINC90LDQvNC4ICzQtdGB0LvQuCDQsdGLINCy0LzQtdGB0YLQviDQvtCx0YnQtdGD0LTQvtCx0L3QvtCz0L4g0L/RgNCw0LLQuNC70LA60YfQuNC9INGH0LjQvdCwINC/0L7Rh9C40YLQsNC5ICwg0LLQstC10LvQvtGB0Ywg0LIg0YPQv9C+0YLRgNC10LHQu9C10L3QuNC1INC00YDRg9Cz0L7QtSzQvdCw0L/RgNC40LzQtdGAOtGD0Lwg0YPQvNCwINC/0L7Rh9C40YLQsNC5P9C60LDQutC40LUg0LLQvtC30L3QuNC60LvQuCDQsdGLINGB0L/QvtGA0YshIjsKIAovKiDQlNC10LvQsNC10YIg0L/QtdGA0LLRg9GOINCx0YPQutCy0YMg0LIg0YHRgtGA0L7QutC1INC30LDQs9C70LDQstC90L7QuSAqLwpmdW5jdGlvbiBtYWtlRmlyc3RMZXR0ZXJVcHBlcmNhc2UoJHN0cikgewoKICAgIGZvciAoJGkgPSAwOyAkaSA8IGNvdW50KCRzdHIpOyAkaSsrKQogICAgewogICAgICAgICRuZXdTdHJbJGldID0gbWJfdWNmaXJzdCgkc3RyWyRpXSk7CiAgICB9CgogICAgcmV0dXJuICRuZXdTdHI7Cn0KIAovKiDQmNGB0L/RgNCw0LLQu9GP0LXRgiDRgtC10LrRgdGCICovCmZ1bmN0aW9uIGZpeFRleHQoJHN0cjEpIHsKIAogICAgcmV0dXJuIHByZWdfcmVwbGFjZSgiLyhbXlxzXT8pXHM/KFsuLD8hOjtdKVxzPyhbXlxzXT8pL3UiLCAiXCQxXCQyIFwkMyIgLCAkc3RyMSk7CiAKfQoKLy8g0KDQsNC30LTQtdC70Y/RjiDQvdCwINC80LDRgdGB0LjQsiDQvtGC0LTQtdC70YzQvdGL0YUg0L/RgNC10LTQu9C+0LbQtdC90LjQuQokdGV4dCA9IHByZWdfc3BsaXQoIi8oPzw9Wy5dKS91IiwgJHRleHQsIDAsIFBSRUdfU1BMSVRfTk9fRU1QVFkpOwovLyDQlNC10LvQsNGOINCy0YHQtSDQv9C10YDQstGL0LUg0LHRg9C60LLRiyDQt9Cw0LPQu9Cw0LLQvdGL0LzQuAokdGV4dCA9IG1ha2VGaXJzdExldHRlclVwcGVyY2FzZSgkdGV4dCk7CiR0ZXh0ID0gaW1wbG9kZSgkdGV4dCk7CgokcmVzdWx0ID0gZml4VGV4dCgkdGV4dCk7CmVjaG8gInskcmVzdWx0fVxuIjs=