Приветствую всех форумчан. Программирую недавно и многого не знаю(
Прошу помогите(подскажите как) переписать этот код с С++ на С?(В С не особо разбираюсь, а времени мало осталось)
Задача: подсчитать кол-во уникальных слов в тексте.
Что делает код: Считывает все слова из файла test.txt и заносит в массив startArr. После этого переносит все уникальные слова в массив res(т е остаются слова без повторений и дубликатов, в единичном числе). В конце выводится количество уникальных слов в тексте(размер массива res)
Прокомментировал, надеюсь все будет понятно
#include <iostream>
#include <vector>
#include <algorithm>
#include <list>
#include <fstream>
#include <sstream>
using namespace std;
int main()
{
setlocale(LC_ALL, "ru");//подключаем русский
list <string> startArr;//исходные данные
list <string> res;//конечный лист
//чтение файла
string str;
ifstream In("D:\\test.txt"); //открываем файл
if (!In) cout << "Error"; //если не закрыли, то даем ошибку
if (In.is_open()) {
while (In>>str) { // пока есть слова заносим их в массив
startArr.emplace_back(str);
}
}
In.close();//закрываем
startArr.unique();//убираем дубликаты
for (auto it = startArr.begin(); it != startArr.end(); it++) {
auto fr = find(res.begin(), res.end(), *it);//проверяем, есть ли уже этот элемент в новом листе
if (fr==res.end())
res.emplace_back(*it);//если нет, то добавляем
}
int size = res.size();//записываем размер массива res
cout << "Уникальных слов: " << size << endl;
for (auto it = res.begin(); it != res.end(); it++) {
cout << (*it) << " ";//вывод для отладки
}
}