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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.73
craftsman
0 / 0 / 0
Регистрация: 25.11.2010
Сообщений: 16
#1

Дан файл. Записать в другой файл строки, которые являются палиндромами. - C++

07.12.2010, 18:32. Просмотров 1496. Ответов 12
Метки нет (Все метки)

Помогите пожалуйста с задачей: "Дан файл а. Записать в файл с те строки и их номера в исходном файле, которые являются палиндромами"!!!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.12.2010, 18:32
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Дан файл. Записать в другой файл строки, которые являются палиндромами. (C++):

Строки с палиндромами из входного файла записать в один файл, а без палиндромов - в другой - C++
Всем ку, в общем задача разбить входной файл на 2 выходных. В 1-ый записать строки с палиндромами, во второй без палиндромов. Вот мой...

Записать в другой файл только строки, которые относятся к родившимся позднее 1980 года - C++
Создать в редакторе текстовый файл с записями следующего вида: Иванов Петр Сергеевич 1975 Сидоров Николай Андреевич 1981 Воробьянинов...

Дан исходный текстовый файл. Записать его строки в выходной файл в перевёрнутом виде - C++
грозят отчислением, нужно решить

Что не так? Дан текстовый файл F. Переписать в другой файл G все строки, содержащие цифры. - C++
#include <iostream> #include <math.h> using std::cin; using std::cout; using std::endl; int main (int argc, char**...

Вывести строки массива строк, которые являются палиндромами - C++
Помогоите решить чайнику 2 задачи по c++ . 2) Массив из M строк по N символов каждая. Необходимо вывести только те строки, которые...

Дан входной текстовый файл, строка S (вводится с клавиатуры). Записать в выходной файл все строки входного файла, содержащие в качестве фрагмента стро - C++
Дан входной текстовый файл, строка S (вводится с клавиатуры). Записать в выходной файл все строки входного файла, содержащие в качестве...

12
sanek12345
0 / 0 / 0
Регистрация: 08.06.2010
Сообщений: 31
07.12.2010, 21:44 #2
Могу дать задачу по нахождению полиндромов.
Она у меня есть, работает без багов!
0
craftsman
0 / 0 / 0
Регистрация: 25.11.2010
Сообщений: 16
08.12.2010, 18:16  [ТС] #3
Если твоя программа по нахождению строк-палиндромов, то давай! Под файлы я как-нибудь переделаю.
0
M128K145
Эксперт С++
8289 / 3509 / 143
Регистрация: 03.07.2009
Сообщений: 10,706
09.12.2010, 12:56 #4
http://www.cyberforum.ru/cpp-beginne...tml#post506088
0
craftsman
0 / 0 / 0
Регистрация: 25.11.2010
Сообщений: 16
16.12.2010, 18:15  [ТС] #5
Помогите с циклом который выявляет строку-палиндром!
И чтобы в новый файл b.txt выводились только строки полиндромы.
По форуму я поискал, но ничего подходящего не нашёл. Т.к. нужно сделать через двумерные массивы.
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
#include "stdafx.h"
#include "iostream"
#include "fstream"
using namespace std;
#define m 100
 
int _tmain(int argc, _TCHAR* argv[])
{
    int i,z=0,j,p;
    ifstream fin;
    ofstream fout;
    char x[m],y[m][m];
    fin.open("a.txt");
    fout.open("b.txt");
    while(!fin.eof())
    {fin.getline(x,m);
    for(i=0;x[i]!='\0';i++)
        y[z][i]=x[i];
        y[z][i]='\0';
        z++;}
    for(j=0;j<z;j++)
    {fout<<"Stroka numer:"<<j<<":";
    {for(p=0;y[j][p]!='\0';p++)
    fout<<y[j][p];
    fout<<'\n';}}
    fout.close();
    fin.close();
    return 0;
}
0
M128K145
Эксперт С++
8289 / 3509 / 143
Регистрация: 03.07.2009
Сообщений: 10,706
16.12.2010, 20:00 #6
craftsman, что мешает ваш двумерный массив представить в виде массива строк и воспользоваться функций из поста, линк на который я бросил
0
craftsman
0 / 0 / 0
Регистрация: 25.11.2010
Сообщений: 16
16.12.2010, 20:14  [ТС] #7
Помогите пожалуйста M128K145. Что бы я ни пробывал у меня файл, в который нужно занести, заполняется всяким мусором, но только не палиндромами.
0
M128K145
Эксперт С++
8289 / 3509 / 143
Регистрация: 03.07.2009
Сообщений: 10,706
16.12.2010, 21:35 #8
craftsman, выложите этот файл, а я скажу, правильный он или нет
0
craftsman
0 / 0 / 0
Регистрация: 25.11.2010
Сообщений: 16
16.12.2010, 22:18  [ТС] #9
Это я на вывод поставил перевёрнутые строки
0
Вложения
Тип файла: txt b.txt (4.2 Кб, 24 просмотров)
M128K145
Эксперт С++
8289 / 3509 / 143
Регистрация: 03.07.2009
Сообщений: 10,706
16.12.2010, 23:29 #10
craftsman, и файл a.txt.
И еще, а что мешает писать так
C++
1
2
3
4
5
6
int i = 0;
while(!fin.eof() && i < m)
{
    fin.getline(y[i], m);
    ++i;
}
Без дополнительного массива
0
craftsman
0 / 0 / 0
Регистрация: 25.11.2010
Сообщений: 16
16.12.2010, 23:44  [ТС] #11
А как при помощи вашей поправки отобрать строки палиндромы и занести их в файл b?
0
Вложения
Тип файла: txt a.txt (96 байт, 21 просмотров)
M128K145
Эксперт С++
8289 / 3509 / 143
Регистрация: 03.07.2009
Сообщений: 10,706
17.12.2010, 01:05 #12
C++
1
2
3
4
5
for(i = 0; i < m; ++i)
{
    if(palindrom(y[i])) 
        fout<<y[i]<<std::endl;
}
Учтите, что функция
C++
1
2
3
4
5
6
7
8
bool palindrom(char s[100000])
{
    size_t x(0), i, len(strlen(s) - 1), slen(len >> 1);
    for(i = 0; i < slen; ++i) 
        if(s[i] != s[len - i])
            return false;      
    return true;
}
учитывает пробелы и строка
Роза упала на лапу азор
не будет палиндромом
1
craftsman
0 / 0 / 0
Регистрация: 25.11.2010
Сообщений: 16
17.12.2010, 18:11  [ТС] #13
Спасибо за помощь.

Добавлено через 1 час 8 минут
Помогите плиз откомпилировать:
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
#include "stdafx.h"
#include "iostream"
#include "fstream"
using namespace std;
#define m 100
bool palindrom(char s[])
{    size_t x(0), i, len(strlen(s) - 1), slen(len >> 1);
    for(i = 0; i < slen; ++i) 
        if(s[i] != s[len - i])
            return false;      
    return true;} 
 
 
int _tmain(int argc, _TCHAR* argv[])
{       int i,z=0,j,p;
        ifstream fin;
        ofstream fout;
        char x[m],y[m][m],s[m];
        fin.open("a.txt");
        fout.open("b.txt");
        while(!fin.eof())
        {fin.getline(x,m);
        for(i=0;x[i]!='\0';i++)
                y[z][i]=x[i];
                y[z][i]='\0';
                z++;}
        for(i=0;x[i];i++)
{    if(palindrom(x[i])) 
        fout<<x[i]<<std::endl;} 
        fout.close();
        fin.close();
        return 0;}
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.12.2010, 18:11
Привет! Вот еще темы с ответами:

Файл: Скопировать текст в другой текстовый файл файл, но чётные строки должны быть с большой буквы... - C++
Создать текстовый файл. Скопировать текст в другой текстовый файл файл, но чётные строки должны быть с большой буквы, а нечетные с...

Считать строки из файла, изменить и записать в другой файл - C++
Добрый день. Есть входящий файл: Лицевой счёт 1010047078 показания счётчика (9243) 1010029116 6036 Ао НЭСК 1010004047 167490 ...

Дан файл f, компоненты которого являются целыми числами. Получить файл g, образованный из файла f исключением повторных вхождений одного и того же чис - C++
Помогите пожалуйста, у меня что-то не очень получается разобратся. Задание: Дан файл f, компоненты которого являются целыми числами....

Дан символьный файл f. Записать в файл g компоненты файла f в обратном порядке - C++
Собственно само задание. 4). Дан символьный файл f. Записать в файл g компоненты файла f в обратном порядке


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

Или воспользуйтесь поиском по форуму:
13
Yandex
Объявления
17.12.2010, 18:11
Ответ Создать тему
Опции темы

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