Показать сообщение отдельно
Старый 07.04.2017, 00:01   #1 (permalink)
andrew_ryaba
Новичок
 
Регистрация: 30.11.2013
Сообщений: 11
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию C++: Удалить из строки слова, начинающиеся с одинаковой буквы

Здравствуйте! Помогите, пожалуйста, с решением такой задачи: составить программу, которая удаляла бы из строки слова, начинающиеся с одинаковой буквы. Я попытался сделать, но проблема в том, что почти во всех случаях программа удаляет все слова, кроме последнего, даже если они начинаются на разные буквы.
Код:
// ConsoleApplication10.cpp: определяет точку входа для консольного приложения.
#include "stdafx.h"
#include <iostream> 
#include <fstream>
#include <iomanip> 
using namespace std;
void main()
{
	char s[100];
	int i = 0;
	bool del = false;
	ifstream F("C:\\labrab\\Input.txt");
	ofstream f("C:\\labrab\\Result.txt");
	while (!F.eof())
	{
		F >> s;
		
			for (int j = i + 1; s[j] != '\0'; j++)
			{
				if ((s[j] == ' ') && (s[j + 1] == s[i])) //удаляем проверяемое слово
				{
					del = true;
					j++;
					int k = j, n = j;
					while ((s[n] != '\0'))
					{
						for (k = j; (s[k] != '\0'); k++)
						{
							s[k] = s[k + 1];
						}
						n++;
					}
				}
			}
			if (del) //удаляем проверочное слово
			{
				int k = i + 1, n = i + 1;
				while ((s[n] != '\0'))
				{
					for (k = i; (s[k] != '\0'); k++)
					{
						s[k] = s[k + 1];
					}
					n++;
				}
				del = false;
			}
			for (; (s[i] != '\0'); i++);
			i++;
		}
	
		f << s << ' ';
	
	f.close();
	F.close();
}
andrew_ryaba вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070