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

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

Войти
Регистрация
Восстановить пароль
 
Hydra
2 / 2 / 0
Регистрация: 17.02.2011
Сообщений: 32
#1

Палиндромы в текстовом файле на С++ - C++

23.04.2011, 16:58. Просмотров 957. Ответов 5
Метки нет (Все метки)

Задача
Подсчитать количество слов-палиндромов в текстовом файле (.txt). Cлова разделены пробелом или каждое записано с новой строки.

Пример
asa mom dad joy
3 палиндрома

или

Пример
asa
mom
dirt
noon
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
43
44
45
46
#include "stdafx.h"
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
#include <iostream>
using namespace std; 
int main()
{   
   int n,j,f,k;
   char ar1[100];
   char ar2[100];
   FILE *f1;
   f1=(fopen("D:\\1.txt","r"));
   fgets(ar1,100,f1);              
   n=strlen(ar1);   
   j=0; f=0; k=0;   
   while(k<n)               
   {
       if(ar1[k]==' ')       
   {
   for(int j=k; j<n; j++) 
   ar1[j]=ar1[j+1];
   n--;
   k--;
   }                              
   k++;
   }
   for(int i=n-1; i>=0; i--)               
   {
   for(j=f; j<n; j++)
   {
    ar2[j]=ar1[i];
       }
            j=0;
           f++;
              }
            int p;                                  
                p=strncmp(ar1,ar2,n); 
         if(p==0) 
        cout << "Eto polindrom\n\n"; 
          else 
            cout << "Eto ne polindrom\n\n";
 
 
return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.04.2011, 16:58     Палиндромы в текстовом файле на С++
Посмотрите здесь:

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

Найти в файле слова-палиндромы - C++
1 Найти в файле f все слова, какие слева направо и наоборот читаются одинаково и сложить из них новый файл q. 2 Запись имеет вид:...

Найти в файле слова-палиндромы - C++
Вообщем засада) Дана задача: Имеется текстовый файл, содержащий текст на русском языке. Найти в нем слова-палиндромы...

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

Центрирование строк в текстовом файле - C++
Длина строк текстового файла не может превышать 80 символов. Нужно разместить все эти строки по центру. Вроде как идея такая... Сначала...

Найти строку в текстовом файле - C++
Написать линейную программу без использования функций и процедур. В программе должно быть реализовано меню выбора действий: добавление...

Замена слов в текстовом файле - C++
Нужна помощь, как в текстовом файле изменить слово, например, &quot;Black&quot; на &quot;White&quot;?

Длина строки в текстовом файле - C++
Найти максимальную длину строки в текстовом файле и распечатать все строки файла, имеющие такую длину.

Не работает поиск в текстовом файле - C++
Я хочу чтобы данные которые я ввожу , записывались в файл с пробелами и считывались на экран(так же с пробелами). Все получилось , но не...

Перенос строки в текстовом файле - C++
Здравствуйте, есть два текстовых файла, я считываю из одного и записываю в другой, если попадается символ &quot;N&quot; нужно сделать перенос строки....


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Hydra
2 / 2 / 0
Регистрация: 17.02.2011
Сообщений: 32
23.04.2011, 19:42  [ТС]     Палиндромы в текстовом файле на С++ #2
Возможно необходимо прописать функцию для выделения слов из текстового файла, с последующим применением функции для определения палиндрома или все это можно в мейне прописать?
Проблема в том что в 1 посту алгоритм нахождения количества палиндромов к текстовому файлу не совсем подходит (имхо). возможно существует более удачный способ это сделать.
ForEveR
В астрале
Эксперт С++
7969 / 4731 / 320
Регистрация: 24.06.2010
Сообщений: 10,539
Завершенные тесты: 3
23.04.2011, 20:42     Палиндромы в текстовом файле на С++ #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
#include <iostream>
#include <fstream>
#include <string>
 
bool isPal(const std::string& str)
{
    return str == std::string(str.rbegin(), str.rend());
}
 
int main()
{
    std::string str;
    std::string f_name;
    std::getline(std::cin, f_name);
    std::ifstream ifs(f_name.c_str());
    if(!ifs)
    {
       std::cerr<< "Can`t open file: "<< f_name;
       return 1;
    }
    int cnt = 0;
    while(ifs >> str)
       if(isPal(str))
          ++cnt;
    std::cout<<cnt;
}
neske
1474 / 841 / 74
Регистрация: 26.03.2010
Сообщений: 2,884
23.04.2011, 20:52     Палиндромы в текстовом файле на С++ #4
ForEveR, а в str будет читаться текст до первого пробела?
ForEveR
В астрале
Эксперт С++
7969 / 4731 / 320
Регистрация: 24.06.2010
Сообщений: 10,539
Завершенные тесты: 3
23.04.2011, 20:56     Палиндромы в текстовом файле на С++ #5
neske, До пробелы или до перевода строки или до таба. Вообщем до isspace я так понимаю)
Hydra
2 / 2 / 0
Регистрация: 17.02.2011
Сообщений: 32
23.04.2011, 21:14  [ТС]     Палиндромы в текстовом файле на С++ #6
Большое спасибо
Yandex
Объявления
23.04.2011, 21:14     Палиндромы в текстовом файле на С++
Ответ Создать тему
Опции темы

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