Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Minyta
0 / 0 / 0
Регистрация: 18.02.2010
Сообщений: 37
#1

Найти и вывести все имеющиеся пары стоящих рядом одинаковых символов - C++

14.03.2010, 19:28. Просмотров 754. Ответов 4
Метки нет (Все метки)

Помогите решить пожалуйста:

Среди данного массива символов, найти и вывести все имеющиеся пары стоящих рядом одинаковых символов. Все исходные величины должны вводиться из файла (in.txt), а результат должен быть записан в результирующий файл (out.txt).

Понимаю конечно что условие отбора if mas[i] = mas[i+1] = условие выполнено, но как делать вывод и ввод в файл не могу разобраться!
http://www.cyberforum.ru/cpp-beginners/thread207786.html
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.03.2010, 19:28
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Найти и вывести все имеющиеся пары стоящих рядом одинаковых символов (C++):

Найти количество пар одинаковых рядом стоящих элементов массива
Найти количество пар одинаковых рядом стоящих элементов массива

В заданной последовательности чисел найти количество одинаковых рядом стоящих элементов
20. Вводится последовательность из целых чисел. Определить количество...

Найти 3 и более одинаковых рядом стоящих элементов одномерного массива в строках и столбцах
найти 3 и более одинаковых рядом стоящих элементов одномерного массива в...

Удалить из строки S все группы длиной только N подряд стоящих одинаковых символов
Помогите пожалуйста. Если можно, то с комментариями. Дана строка S и...

Поиск одинаковых рядом стоящих элементов
Объявите вектор с элементами целого типа. Заполните его произвольными...

4
Sergey_O
5 / 5 / 3
Регистрация: 09.12.2009
Сообщений: 65
14.03.2010, 20:01 #2
C++
1
2
3
4
5
6
7
8
9
10
1.  
    FILE* TEST; 
    TEST=fopen("out.txt","a+"); 
    fprintf(TEST,"%s\n", mas[]); 
    fclose(TEST);
2.
    FILE* TEST2; 
    TEST2=fopen("in.txt","r+"); 
    fscanf(TEST,"%s\n", mas[]); 
    fclose(TEST2);
1. Запись в файл
2. Вывод из файла

Зацикливаешь и вместо mas[] используешь mas[i];
1
Minyta
0 / 0 / 0
Регистрация: 18.02.2010
Сообщений: 37
14.03.2010, 21:48  [ТС] #3
Ври например то что смогла: но куча ошибок которых не могу понять.
И как массиву результат присваивать тоже не могу понять..

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
#include <conio.h>
#include <stdio.h>
#include <fstream.h> 
 
void main()
{
int mas;  
int mas2;  
int i, chislo; 
 
clrscr();
 
//Чтение из файла
ifstream file_in("IN2_17.txt");  
for (i=0;i<=n-1;i++){ file_in >> 
mas[i]=chislo;
};
 
file_in.close();
printf("Soderzimoe faila \"IN2_17.txt\":\n"); 
for (i=0;i<=n-1;i++) printf("%d ", mas[i]);
 
//Решение
for (i=0;i<=n-1;i++) if (mas[i]>mas[i+1]) 
{ //как массиву mas2 присвоить результат???
}
    
//вывод на экран            
printf("\n\n Имеющиеся пары стоящих рядом одинаковых символов: "); 
printf("%d ", mas2);
 
/вывод в файл
ofstream file_out("OUT2_17.txt"); 
 
file_out <<"Soderzimoe faila \"IN2_17.txt\":"<<endl;
for (i=0;i<=n-1;i++) file_out << mas[i] <<" ";
 
file_out <<endl<<" Имеющиеся пары стоящих рядом одинаковых символов: ";
file_out <<mas2;
// ---------------------------------------------
file_out.close();
getch();
Добавлено через 1 час 20 минут
Прошу прощения, опечаталась в прошлом сообщении:

*ВОТ например то что смогла: но куча ошибок которых не могу понять.
И как массиву результат присваивать тоже не могу понять..
0
easybudda
Модератор
Эксперт CЭксперт С++
10021 / 5944 / 1483
Регистрация: 25.07.2009
Сообщений: 11,230
14.03.2010, 22:07 #4
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
/*
*   Среди данного массива символов, найти и вывести все имеющиеся пары стоящих рядом одинаковых символов. 
*   Все исходные величины должны вводиться из файла (in.txt), а результат должен быть записан 
*   в результирующий файл (out.txt).
*/
#include <iostream>
#include <fstream>
 
int main(){
    const char* fin_name = "in.txt";
    const char* fout_name = "out.txt";
    
    char last, cur;
    
    std::ifstream fin(fin_name);
    if ( !fin.is_open() ){
        std::cerr << "Can't open file <" << fin_name << "> for input!" << std::endl;
        return 1;
    }
    std::ofstream fout(fout_name);
    if ( !fout.is_open() ){
        std::cerr << "Can't open file <" << fout_name << "> for output!" << std::endl;
        fin.close();
        return 1;
    }
    
    fin.get(last);
    while ( fin.get(cur) ){
        if ( cur == last )
            fout << cur << last << ' ';
        last = cur;
    }
    
    fin.close();
    fout.close();
    std::cout << "Done." << std::endl;
    return 0;
}
1
Minyta
0 / 0 / 0
Регистрация: 18.02.2010
Сообщений: 37
14.03.2010, 23:00  [ТС] #5
easybudda, спасибо огромное!
0
14.03.2010, 23:00
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.03.2010, 23:00
Привет! Вот еще темы с решениями:

Определить в строке количество пар рядом стоящих одинаковых букв
Задание: дана строка St , состоящая из латинских букв, цифр и знаков....

В массиве каждую группу рядом стоящих одинаковых элементов заменить одним и тем же значением
в массиве целых чисел каждую группу рядом стоящих одинаковых элементов заменить...

Заполнить матрицу заданного размера числами 1,2,3,4 так, чтобы по горизонтали, вертикали и диагонали не было одинаковых рядом стоящих чисел.
Заполнить матрицу заданного размера M(k,l) числами 1,2,3,4 так, чтобы по...

В массиве целых чисел найти и распечатать все пары одинаковых чисел
В массиве целых чисел найти и распечатать все пары одинаковых чисел. За помощь...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

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