На нашем сайте мы используем cookie для сбора информации технического характера и обрабатываем IP-адрес вашего местоположения. Продолжая использовать этот сайт, вы даете согласие на использование файлов cookies. Здесь вы можете узнать, как мы пользуемся файлами cookies.
Я согласен
логотип upread.ru

Убираем повторения слов на C++



Новая небольшая задачка по C++. Необходимо разработать программу, которая читает файл, убирает повторяющиеся слова и снова его записывает.

Решение

Будет консольное приложение. Подключаем что потребуется

#include "stdafx.h"
#include <iostream>
#include <fstream>
#include <string>
#include <algorithm>
#include <vector>

using namespace System;
Читаем файл в строку

std::string str;

std::ifstream fin("D:\\temp\\F1.txt");
if (!fin)
{
	std::cout << "Error!" << std::endl;
	td::cin.get();
	return 0;
}
getline(fin, str);
Cортируем

char s[2000];
strcpy(s, str.c_str());

for (int i = 0; i < strlen(s) - 1; i++)
	for (int j = strlen(s) - 1; j >i; j--)
		if (s[j] < s[j - 1])
			std::swap(s[j], s[j - 1]);
	str = std::string(s);
Убираем повторяющиеся

int i = 0;
while (str[i + 1] != '\0') // пока не конец строки
{
	if (str[i] == str[i + 1]) // если текущий похож на следующий
		for (int x = 0; (x<256 && str[x] != '\0'); x++)
			str[i + x + 1] = str[i + x + 2]; // удаляем следующий
	else i++; // если не похож переходим на него
}
Записываем файл

std::ofstream out; 
out.open("D:\\temp\\F2.txt"); 
if (out.is_open())
{
	out << str << std::endl;
}

system("pause");
return 0;




Автор этого материала - я - Пахолков Юрий. Я оказываю услуги по написанию программ на языках Java, C++, C# (а также консультирую по ним) и созданию сайтов. Работаю с сайтами на CMS OpenCart, WordPress, ModX и самописными. Кроме этого, работаю напрямую с JavaScript, PHP, CSS, HTML - то есть могу доработать ваш сайт или помочь с веб-программированием. Пишите сюда.



тегизаметки, си плюс плюс

Читайте также:




Урок 3. Параллельный цикл ForEach
Урок 5. Введение в шаблоны (интерполяцию) и директивы Vue


© upread.ru 2013-2022
При перепечатке активная ссылка на сайт обязательна.
Задать вопрос
письмо
Здравствуйте! Вы можете задать мне любой вопрос. Если не получается отправить сообщение через эту форму, то пишите на почу up777up@yandex.ru
Отправляя сообщение я подтверждаю, что ознакомлен и согласен с политикой конфиденциальности данного сайта.