Перевести программу из C++ в Си - C (СИ) (77253)

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

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

#include <cstdio>
#include <cstdlib>
#include <iostream>
#include <string.h>
using namespace std;

class NameDataSet
{
  public:
        char szName[128];
        // указатель на следующую запись в списке
        NameDataSet* pNext;
};
 
// указатель на первую запись списка
NameDataSet* pHead = 0;
 
// добавление нового члена в список
void add(NameDataSet* pNDS)
{
        pNDS->pNext = pHead;
        // заголовок указывает на новую запись
        pHead = pNDS;
}
 
// чтение имени
NameDataSet* getData()
{
        // читаем имя
        char nameBuffer[128];
        cout << "\nEnter name:";
        cin  >> nameBuffer;
 
        // усли "exit" - выход
        if ((stricmp(nameBuffer, "exit") == 0))
        {
                return 0;
        }
 
        // новая запись для заполнения
        NameDataSet* pNDS = new NameDataSet;
 
        // заполнение поля имени и обнуление указателя
        strncpy(pNDS->szName, nameBuffer, 128);
        pNDS->szName[127] = '\0';
        pNDS->pNext = 0;
 
        // возврат адреса созданного объкта
        return pNDS;
}
 
int main(int nNumberofArgs, char* pszArgs[])
{
        cout << "Read names of students\n"
                 << "Enter 'exit' for first name to exit\n";
 
        // создание объекта NameDataSet
        NameDataSet* pNDS;
        while (pNDS = getData())
        {
                // добавление в конец списка
                add(pNDS);
        }
 
        cout << "Entries:\n";
        pNDS = pHead;
        while(pNDS)
        {
                // вывод текущей записи
                cout << pNDS->szName << "\n";
 
                // получение следующей записи
                pNDS = pNDS->pNext;
        }
 
        system("PAUSE");
        return 0;
}
Эту программу нужно перевести в Си. помогите,если не сложно

Решение задачи: «Перевести программу из C++ в Си»

textual
Листинг программы
struct NameDataSet
{
        char szName[128];
        NameDataSet* pNext;
} parampampam;                          // готовая переменная
 
struct NameDataSet *foo, bar;        // объявление переменных
 
struct NameDataSet ( struct NameDataSet );     // прототип функции, возвращающей структуру  
                            // NameDataSet и принимающей в качестве аргумента
                            // такую же структуру

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

  1. Структура NameDataSet объявлена с двумя полями: szName типа char с длиной в 128 символов и pNext типа NameDataSet*.
  2. Переменная parampampam типа NameDataSet инициализирована.
  3. Объявлены две переменные foo и bar типа NameDataSet*.
  4. Прототип функции NameDataSet NameDataSet(struct NameDataSet) объявлен. Эта функция возвращает структуру NameDataSet и принимает в качестве аргумента такую же структуру. Список не содержит более 20 элементов, как указано в условии.

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


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

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

6   голосов , оценка 4.167 из 5