Вопрос задан 24.02.2021 в 08:15. Предмет Информатика. Спрашивает Понурова Вера.

Програма С++ : Создайте односвязный список элементов типа CHAR. Удалите из списка все символы, не

являющиеся буквой латинского алфавита.
0 0
Перейти к ответам

Ответы на вопрос

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Кашпаров Арсений.

#include <iostream>

#include <list>

#include <algorithm>

#include <iterator>

#include <cctype>

int main()

{

   std::list<char> lt{'5', 'a', 'c','g', '7', 't', '!'};

   std::cout << std::endl;

   std::copy(lt.begin(), lt.end(), std::ostream_iterator<char>(std::cout, " "));


   lt.remove_if([](char& var1)

   {

       return !(std::tolower(var1, std::locale()) >= 'a' && std::tolower(var1, std::locale()) <= 'z');

   });

   std::cout << std::endl;

   std::copy(lt.begin(), lt.end(), std::ostream_iterator<char>(std::cout, " "));

}



0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Вот пример программы на C++, которая создает односвязный список элементов типа char и удаляет из списка все символы, не являющиеся буквами латинского алфавита:

cpp
#include <iostream> using namespace std; // Определение структуры узла списка struct Node { char data; Node* next; }; // Функция для добавления элемента в конец списка void append(Node** head, char value) { // Создание нового узла Node* newNode = new Node(); newNode->data = value; newNode->next = nullptr; // Если список пуст, новый узел становится головным элементом if (*head == nullptr) { *head = newNode; return; } // Иначе ищем последний узел и добавляем новый узел в конец Node* last = *head; while (last->next != nullptr) { last = last->next; } last->next = newNode; } // Функция для удаления символов, не являющихся буквой латинского алфавита void removeNonAlphabeticChars(Node** head) { // Если список пуст, выходим из функции if (*head == nullptr) { return; } Node* current = *head; Node* prev = nullptr; // Пока не достигнут конец списка while (current != nullptr) { // Если текущий символ не является буквой латинского алфавита if (!(current->data >= 'A' && current->data <= 'Z') && !(current->data >= 'a' && current->data <= 'z')) { Node* next = current->next; // Если текущий элемент - головной, обновляем голову списка if (prev == nullptr) { *head = next; } else { // Иначе, связываем предыдущий элемент с следующим prev->next = next; } delete current; current = next; } else { prev = current; current = current->next; } } } // Функция для отображения содержимого списка void displayList(Node* head) { Node* current = head; while (current != nullptr) { cout << current->data << " "; current = current->next; } cout << endl; } int main() { Node* head = nullptr; // Добавление элементов в список append(&head, 'H'); append(&head, 'e'); append(&head, '1'); append(&head, 'l'); append(&head, '0'); append(&head, 'W'); append(&head, 'o'); append(&head, 'r'); append(&head, 'l'); append(&head, 'd'); append(&head, '!'); cout << "Исходный список: "; displayList(head); // Удаление символов, не являющихся буквой латинского алфавита removeNonAlphabeticChars(&head); cout <<
0 0

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос