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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
prorider
0 / 0 / 0
Регистрация: 21.11.2012
Сообщений: 15
#1

Выбрать из текста символы,которые встречаются в нем только два раза, в том порядке,в котором они встречаются в тексте(не правильно работает программа) - C++

28.04.2013, 20:30. Просмотров 229. Ответов 0
Метки нет (Все метки)

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

Я попробовал написать, но что-то у меня не правильно работает программа:
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
#include <fstream>
#include <string>
#include <iostream>
using namespace std;
 
struct ab{ //структура хранящая букву, сколько раз она встретилась, первая позиция вхождения
char s;
short q,i;
}a[34];
 
void main(){
    setlocale(LC_ALL, "Russian");
    ifstream in("input.txt");
    string so = "абвгдежзиклмнопрстуфхцчшщъыьэюя"; 
    char  z;
    for (int i = 0; i<=30; i++){        //присвоение каждой букве структуры
        a[i].s = so[i];
        a[i].q = a[i].i = 0;
    }
    int p=0;    //счетчик общего положения буквы в строке
    while (!in.eof()){ //пока не конец файла
        in>>z; p++;
        for (int i = 0; i<=30; i++){    //поиск в массиве букв 
            if (a[i].s == z) a[i].q++;  //если встретилась
            if (a[i].i == 0) {a[i].i = p; break;}   //если еще не встречалась, то запоминаем позицию первого вхождения
        }
    }
    
    for (int i = 1; i<=29; i++)     // сортировка относительно первого вхождения
        for (int j = i+1; j<=30; j++)
            if (a[i].i>a[j].i)  swap(a[i],a[j]);
 
    for (int i = 1; i<=30; i++) //вывод
        if (a[i].q == 2) cout<<a[i].s<<' ';
    system("pause");
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.04.2013, 20:30     Выбрать из текста символы,которые встречаются в нем только два раза, в том порядке,в котором они встречаются в тексте(не правильно работает программа)
Посмотрите здесь:

Из заданной символьной строки выбрать те символы, которые встречаются в ней только один раз, в том порядке, в котором они встречаются в тексте - C++
Из заданной символьной строки выбрать те символы, которые встречаются в ней только один раз, в том порядке, в котором они встречаются в...

Из заданного текста выбрать те символы, которые встречаются в нём ровно один раз - C++
Из заданного текста выбрать те символы, которые встречаются в нём ровно один раз. Вывести их в том же порядке, как они были в тексте.

Из предложения напечатать те символы, которые встречаются в нем ровно один раз - C++
Из заданного предложения выбрать и напечатать те символы, которые встречаются в нем ровно один раз (в том порядке, как они встречаются в...

Напечатать только те символы, которые встречаются только в одном из слов - C++
Даны два слова, напечатать только те символы, которые встречаются только в одном из слов. Например, для слов процессор и информация....

Вывести только те слова сообщения, которые встречаются в нем более n раз - C++
Нужно выполнить эту задчку используя только библиотеки string и iostream. Буду очень благодарен, если вам не трудно. Дано...

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

Вывести только те слова сообщения, которые встречаются в нем ровно один раз - C++
Вывести только те слова сообщения, которые встречаются в нем ровно один раз. Помогите исправить ошибку в коде. #include &lt;iostream&gt; ...

Напечатать только те символы, которые встречаются в обоих словах одновременно - C++
Даны два слова, напечатать только те символы, которые встречаются в обоих сло-вах одновременно. Например, для слов процессор и информация....

Вывести только те слова сообщения, которые встречаются в тексте один раз - C++
Дано осмысленное текстовое сообщение (т.е. алфавитно-цифровая информация, разделенная пробелами и знаками препинани, в конце которого...

Задан текст. Напечатать буквы этого текста, которые встречаются только 1 раз - C++
Доброго времени суток. Помогите, пожалуйста, составить программу. Заранее огромное спасибо.


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru