Переписать код под использование динамических массивов - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Народ исправте плз код мне нужно в задании чтобы массив "s" создавался динамичиский(динамической памятью(malloc,realloc,calloc)).ЗАРАНЕЕ СПАСИБО!!
#include <stdio.h>
int main()
{
    char b[]="ABCDEFGHIJKLMNOPQRSTUVWXYZ";
    char m[]="abcdefghijklmnopqrstuvwxyz";
    char s[30];
    int i,j;
    for(;;)
    {
    scanf("%s",&s);
    for(i=0;i<strlen(s);i++) {
        for(j=0;j<strlen(b);j++) {
            if(s[i]==b[j]) s[i]=m[j];
            else
            if(s[i]==m[j]) s[i]=b[j];
        }
    }
    printf("%s",s);
    }
    getch();
    return 0;
}

Решение задачи: «Переписать код под использование динамических массивов»

textual
Листинг программы
#include <stdio.h>
#include <alloc.h>
int main()
{
        char b[]="ABCDEFGHIJKLMNOPQRSTUVWXYZ";
        char m[]="abcdefghijklmnopqrstuvwxyz";
        char* s = (char*)malloc(30*sizeof(char));
        memset(s, ' ', 30);
        int i,j;
        for(;;)
        {
        scanf("%s",&s);
        for(i=0;i<strlen(s);i++) {
                for(j=0;j<strlen(b);j++) {
                        if(s[i]==b[j]) s[i]=m[j];
                        else
                        if(s[i]==m[j]) s[i]=b[j];
                }
        }
        printf("%s",s);
        }
        getch();
        free(c);
        return 0;
}

Объяснение кода листинга программы

В этом коде происходит следующее:

  1. Создаются два массива символов: b и m.
  2. Создается динамический массив s с помощью функции malloc.
  3. В цикле происходит считывание строки с помощью функции scanf и сохранение ее в массиве s.
  4. Затем происходит двойной цикл, который проходит по каждому символу в строке s и сравнивает его с символами в массивах b и m. Если символ совпадает с символом в массиве b, он заменяется на соответствующий символ из массива m. Если символ совпадает с символом в массиве m, он заменяется на соответствующий символ из массива b.
  5. После завершения циклов выводится отформатированная строка s.
  6. После каждого ввода строки вызывается функция getch для приостановки выполнения программы до тех пор, пока пользователь не введет символ.
  7. В конце программы вызывается функция free для освобождения выделенной памяти.
  8. Возвращается 0, что означает успешное выполнение программы.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 4.2 из 5
Похожие ответы