07.04.2017, 00:01 | #1 (permalink) |
Новичок
Регистрация: 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(); } |
07.04.2017, 00:01 | |
Helpmaster
Member
Регистрация: 08.03.2016
Сообщений: 0
|
Вам хорошо было бы ознакомиться со схожими обсуждениями на нашем форуме Office. Вместо одной буквы печатаются по две буквы Как сделать так, чтобы вводя первые буквы слова в "имя ящика", уже появлялось слово? |
07.04.2017, 12:15 | #3 (permalink) | |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Цитата:
Задачка из разряда ОЧЕНЬ заковыристых. Мне кажется, простым манипулированием переменными циклов решить её если и можно, то до крайности затруднительно. Проще сделать так: прогнать цикл, формирующий из строки массив отдельных слов (напр. W), затем написать блок, удаляющий "лишние" слова (пусть количество слов равно N; от i=1 до N-1 от j=i+1 до N если W[i][1]=W[j][1], то W[j] удалить, и если произошло хоть одно удаление, то и W[i] тоже удалить) и, наконец, из массива вновь сформировать строку. Тоже, конечно, не подарок, но хоть прозрачно. |
|
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
|
|