Saeg
03.03.2021 00:53

До іть будь ласкаа! буду вдячна!


До іть будь ласкаа! буду вдячна!

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
angelina2003po
11.01.2020 21:42
Вот исходник. заменишь строку и искомые слова.

/*
*
*   Программа решает задачу:  Дана строка символов. Группы символов,
*   разделенные пробелами (одним или несколькими) и не содержащие пробелы
*   внутри себя, будем называть словами.
*   Заменить в строке слова 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) (((x) > (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(S[i]))); // Замена "грека" на "АА" = "АА___"
}
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 - 1)));
     rhs =         isspace((unsigned char) *(begin + len))|| ispunct((unsigned char) *(begin + len));
     return lhs && rhs;
}
//
0,0(0 оценок)
Ответ:
valeria204567
17.07.2022 07:30
Замечание надеемся, что вы еще не забыли о позиционном принципе записи чисел в любых системах счисления (значение цифр, количество которых ограничено, зависит от положения в числе, от ее позиции).в данный момент мы делаем шаг в сторону абстрагирования от конкретных значений цифр и начинаем считать только количество знакомест (позиций), которое в принято называть "разрядом", а совокупность разрядов (знакомест) — "разрядностью". определение разряд в арифметике — это место, занимаемое цифрой при записи числа. например, в десятичной системе счисления цифры первого разряда — это единицы, второго разряда — десятки и т. д. но арифметические законы, которые кажутся привычными в десятичной системе счисления, все без исключения действительны и для двоичной системы счисления. двоичные числа также можно складывать, вычитать, перемножать и делить с использованием тех же приемов школьного курса арифметики. отличие заключается только в том, что используются всего две цифры. кроме того, как мы уже выяснили, в двоичной системе счисления каждый разряд — это бит и его значение зависит от позиции и равно соответствующей степени числа "2". определение разрядность двоичного числа — это количество знакомест (разрядов) или количество битов, заранее отведенных для записи числа. пример десятичное число "2" может быть записано различными способами в зависимости от разрядности двоичного числа: как "10", если разрядность равна двум; как "0010", если разрядность равна четырем; как "00000010", если разрядность равна восьми. обратите внимание, что последний вариант соответствует записи десятичного числа "2" в пределах одного байта информации. разрядность двоичного числа интересует нас в связи с тем, что это количество разрядов (позиций или знакомест) обеспечивает определенный набор возможных двоичных чисел, которые, как мы уже договорились, могут служить , с которых происходит кодирование любых видов информации: собственно чисел, текстов, графических и цветных изображений, звуков, анимации и видео. осталось только выяснить, каким образом разрядность влияет на количество информации (двоичных кодов), котоую можно получить с определенного количества разрядов. однако прежде следует учесть одну особенность двоичных чисел, нашедшую применение в компьютерных технологиях, — это фиксированные значения разрядности двоичных чисел.
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота