Переписать код под использование динамических массивов - 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;
}
Объяснение кода листинга программы
В этом коде происходит следующее:
- Создаются два массива символов: b и m.
- Создается динамический массив s с помощью функции malloc.
- В цикле происходит считывание строки с помощью функции scanf и сохранение ее в массиве s.
- Затем происходит двойной цикл, который проходит по каждому символу в строке s и сравнивает его с символами в массивах b и m. Если символ совпадает с символом в массиве b, он заменяется на соответствующий символ из массива m. Если символ совпадает с символом в массиве m, он заменяется на соответствующий символ из массива b.
- После завершения циклов выводится отформатированная строка s.
- После каждого ввода строки вызывается функция getch для приостановки выполнения программы до тех пор, пока пользователь не введет символ.
- В конце программы вызывается функция free для освобождения выделенной памяти.
- Возвращается 0, что означает успешное выполнение программы.