Форум программистов, компьютерный форум CyberForum.ru

Удаление слов, которые начинаются на одну букву - C++

Восстановить пароль Регистрация
 
Maestro1994
Сообщений: n/a
23.05.2012, 22:42     Удаление слов, которые начинаются на одну букву #1
Добрый вечер.

Прошу помочь в написании программы.
Задание: считать из файла строку, найти и удалить слова,которые начинаются на одну и ту же букву.

вот то,что получилось сделать. одна проблема: находит и удаляет только слова,которые начинаются на первую букву массива. Нужно осуществить несколько "прогонов". Заранее благодарен.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
#include<fstream>
#include<stdio.h>
#include<conio.h>
#include<iostream>
#include"ConsoleColor.h"
 
using namespace std;
 
int main()
{
    char bukva[1],temp[210],text[211],bezslov[211];
    int n,w,g=0,c=0,j=0,i=0;
    ifstream f;
    f.open("111.txt");
    
    if(!f)
        cout << "The file isn't found";
        
    else
    {
        cout << "TEKST do obrabotki:\n";
        f.getline(temp,210);
        n = strlen(temp);
        cout << temp << endl;
        
        text[i]=32;
        for(i=1,w=0;i<n+1,w<n;i++,w++)
            text[i]=temp[w];
        n+=1;
 
        for(i=0;i<n;i++)
            if(((64<text[i] && text[i]<91) || (96<text[i] && text[i]<123)) && text[i-1]==32)
            {
                bukva[0]=text[i];
                break;
            }
 
        for(i=0;i<n;i++)
        {
            if(text[i]==bukva[0] && text[i-1]==32 && text[i+1])
            {
                c++;
                for(int f=i;f<n;f++)
                {
                    if(text[f]!=32)
                    {
                        i++;
                        g++;
                    }
                    else
                        break;
                }                       
                
            }
            else
            {
                bezslov[j]=text[i];
                j++;
            }
            
        }
        
        
        cout<<endl<<"TEKST posle obrabotki"<<endl;
 
        for(j=1;j<n-g-c;j++)
            cout<<bezslov[j];
        cout<<endl;
        
        
 
    }
        f.close();
        return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.05.2012, 22:42     Удаление слов, которые начинаются на одну букву
Посмотрите здесь:

C++ Строка содержит текст.подсчитать количество слов которые начинаются на вводимую букву.
Подсчитать количество пучтых строк и количество строк,которые начинаются и оканчиваются на одну и ту же букву. C++
Удалить все слова, которые начинаются и заканчиваются за одну и ту же букву C++
Таблица слов данного текста, которые начинаются на букву В C++
Вывести только те слова сообщения, которые начинаются и оканчиваются на одну и ту же букву C++
C++ Удалить все слова в тексте, которые начинаются и заканчиваются на одну и ту же букву
Вывести все слова, которые начинаются и заканчиваются на одну букву C++
Посчитать количество слов которые начинаются на букву "Б" C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
AncinetHero
49 / 49 / 3
Регистрация: 22.05.2011
Сообщений: 326
23.05.2012, 22:47     Удаление слов, которые начинаются на одну букву #2
Отсортируй строки с помощью стандартной функции sort и потом можно легко проверить на совпадения букв.
Yandex
Объявления
23.05.2012, 22:47     Удаление слов, которые начинаются на одну букву
Ответ Создать тему
Опции темы

Текущее время: 03:29. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru