На изученном вами языке программирования составьте программу для замены в данном тексте всюду: части детектив на часть роман например, текст детектив без погони - это не детектив должен стать таким: роман без погони - это не роман, а из текста не могу заснуть без детектива должен получиться текст не могу заснуть без романа.
241
496
Ответы на вопрос:
// pascalabc.net 3.2, сборка 1374 от 10.01.2017 // внимание! если программа не работает, обновите версию! begin var s: =readlnstring('> '); s: =s.replace('детектив','роман'); s.println end. примеры > детектив без погони - это не детектив роман без погони - это не роман > не могу заснуть без детектива не могу заснуть без романа
Вот исходник. заменишь строку и искомые слова. /* * * программа решает : дана строка символов. группы символов, * разделенные пробелами (одним или несколькими) и не содержащие пробелы * внутри себя, будем называть словами. * заменить в строке слова s на слова w ( s, w - заданы). * * */ // #include < stdio.h> #include < string.h> #include < stdlib.h> #include < ctype.h> #define bool int #define true 1 #define false 0 #define max(x, y) ) > (y)) ? (x) : (y)) #define space ' ' // подпрограмма определяет, является ли группа символов словом. bool iswordc (const char*const str, const char*const begin, int len); // #pragma argsused int main(int argc, char* argv[]) { const char*const def_str = "ехал грека через реку , видит грека – в реке рак. сунул грека руку в реку, рак за руку греку – цап! рекурсия рукавицы"; const char* s[] = { "грека", "реку", "руку", "рак", "" }; const char* w[sizeof(s) / sizeof(char*)] = { "", "поле", "ногу", "мышь", "грека" }; const int counts = sizeof(s) / sizeof(char*); int i, offset, delta, isword; char* pos; char* str = (char*)malloc(strlen(def_str)+1); if (! str) return 1; memcpy(str, def_str, strlen(def_str)+1); for ( i = 0; i < counts; ++i) { pos = str; while ((pos = strstr(pos, s[i])) ! = null) { // группы символов, разделенные пробелами, будем называть словами. if (iswordc(str,pos,strlen(s[i])) == true) { if (strlen(s[i]) ! = strlen(w[i])) { // при разной длине - компенсируем разницу, т.е при замене рак на раковина не должны портиться другие данные. delta = strlen(s[i]) - strlen(w[i]); if (delta < 0) { offset = pos - str; str = (char*)realloc(str, strlen(str) + 1 - delta ); if (! str) return 1; str[strlen(str) - delta] = '\0'; pos = str + offset; memmove(pos - delta, pos, strlen(pos)); } memset(pos, space, max(strlen(w[i]), strlen(; // замена "грека" на "аа" = "" } strncpy(pos, w[i], strlen(w[i])); } pos += strlen(s[i]); } } free(str); return 0; } // // // подпрограмма определяет, является ли группа символов словом. bool iswordc(const char*const str, const char*const begin, int len) { bool lhs,rhs; // ( рак и раковина разные слова.) // к (unsigned char) необходимо т.к. функции isspace и ispunct делают проверку (a> -1 & & a< =255). lhs = (begin == str); // исключаем выход за границы. lhs = lhs || (isspace((unsigned char) *(begin - 1)) || ispunct((unsigned char) *(begin - ; rhs = isspace((unsigned char) *(begin + len))|| ispunct((unsigned char) *(begin + len)); return lhs & & rhs; } //
Реши свою проблему, спроси otvet5GPT
-
Быстро
Мгновенный ответ на твой вопрос -
Точно
Бот обладает знаниями во всех сферах -
Бесплатно
Задай вопрос и получи ответ бесплатно
Популярно: Информатика
-
dibtdi17.09.2020 20:49
-
ЛюАниме13.06.2022 21:27
-
TupoyKakProbka27.03.2022 04:13
-
marinasok2316.07.2021 11:19
-
Sherlokzn19.08.2022 01:32
-
ппчуп08.01.2020 03:30
-
rim289118.08.2020 13:23
-
8903789579331.10.2020 05:56
-
Kanesan12.04.2020 13:42
-
FHN201719.01.2023 07:49
Есть вопросы?
-
Как otvet5GPT работает?
otvet5GPT использует большую языковую модель вместе с базой данных GPT для обеспечения высококачественных образовательных результатов. otvet5GPT действует как доступный академический ресурс вне класса. -
Сколько это стоит?
Проект находиться на стадии тестирования и все услуги бесплатны. -
Могу ли я использовать otvet5GPT в школе?
Конечно! Нейросеть может помочь вам делать конспекты лекций, придумывать идеи в классе и многое другое! -
В чем отличия от ChatGPT?
otvet5GPT черпает академические источники из собственной базы данных и предназначен специально для студентов. otvet5GPT также адаптируется к вашему стилю письма, предоставляя ряд образовательных инструментов, предназначенных для улучшения обучения.