Записать строку с клавиатуры в массив - C (СИ)
Формулировка задачи:
Здравствуйте, столкнулся с небольшой проблемой. Я ввожу с клавиатуры предложение, программа удаляет знаки препинания и записывает получившуюся(слитную) строку в массив.
Пример: Что ввожу: primer stroki v massive
Что хочу получить: primerstrokivmassive
Но у меня ошибка где-то в коде.
Листинг программы
- #include <stdio.h>
- #include <string.h>
- int main()
- {
- char str[80];
- char* t;
- char znak[]={' ', ',','/', '\\'};
- char *mass;
- mass = malloc(sizeof(char) * 100000000);
- int i=0;
- printf("\nVvedite stroku:\n");
- gets(str);
- t=strtok(str,znak);
- while (t != NULL)
- {
- mass[i]=t;
- i++;
- t = strtok (NULL,znak);
- }
- printf("массив: %s\n", mass);
- return 0;
- }
Решение задачи: «Записать строку с клавиатуры в массив»
textual
Листинг программы
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- int main()
- {
- char str[80];
- char *mass;
- mass = malloc(sizeof(char) * 1000);
- printf("\nVvedite stroku:\n");
- gets(str);
- for(int i = 0, j = 0; str[i]; ++i)
- {
- if((str[i] >= ' ' && str[i] <= '/') || (str[i] >= ':' && str[i] <= '@'))
- continue;
- mass[j] = str[i];
- j++;
- }
- printf("массив: %s\n", mass);
- return 0;
- }
Объяснение кода листинга программы
- Подключение необходимых библиотек:
, , - Объявление переменных:
- str[80] - массив символов для хранения строки, введенной пользователем
- mass - указатель на начало блока памяти, выделенного динамически
- Выделение памяти под массив символов с помощью функции malloc
- Вывод сообщения с приглашением ввести строку
- Ввод строки с клавиатуры с помощью функции gets
- Условие цикла for:
- i - индекс символа в строке
- j - индекс символа в массиве
- Проверка каждого символа строки на соответствие условию:
- Если символ является пробелом, запятой, точкой, запятой, двоеточием, то он пропускается
- Если символ не соответствует условию, то он копируется в массив
- Копирование символа в массив и увеличение индекса j
- Вывод содержимого массива с помощью функции printf
- Возврат 0, что означает успешный конец работы программы
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д