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

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

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

Вычислить количество строк, первая половина которых совпадает со второй - C++

22.02.2014, 11:22. Просмотров 221. Ответов 1
Метки нет (Все метки)

Помогите решить следующую задачку:

Предполагается, что в файле записана последовательность символов, разбитая управляющим символом \n на строки длины не более 256 (возможно, пустая).
Требуется за один просмотр файла, используя функцию fgets, вычислить количество строк, первая половина которых совпадает со второй, например, abab или axbax.
Программа должна содержать функцию, которая получает в качестве параметра указатель на файл и возвращает требуемый результат. Функция main открывает файл, обращается к функции и выводит ответ на экран.
(Замечание: В длине строки не учитывать символ с кодом "\n". В последней строке символ \n может (но не обязан) отсутствовать.)
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.02.2014, 11:22     Вычислить количество строк, первая половина которых совпадает со второй
Посмотрите здесь:

Найти в тексте слова, у которых первая буква совпадает с последней - C++
Здравствуйте. помогите написать программу. найти в тексте слова, у которых первая буква совпадает с последней. Спасибо

Вычислить количество строк матрицы, элементы которых упорядочены по возрастанию - C++
Задание: Дано матрицу размерности N на M. Вычислить количество строк матрицы, элементы которых упорядочены по возрастанию. Заранее...

Вычислить количество строк матрицы, в которых нет ни одного отрицательного элемента - C++
Пожалуйста помогите решить,халявщику.Пожалуйста 1. Дана матрица размерности N на M. Вычислить количество строк матрицы, в которых нет ни...

Найти количество слов, у которых первый и последний символ совпадает - C++
Ввод с клавиатуры, символ не должен быть пробелом или запятой, то есть ввожу к примеру слова: lyagushka, lineyka, kopilka значит выводит...

Посчитать количество элементов массива, у которых значение совпадает с их индексом - C++
Дан одномерный массив А Посчитать количество элементов массива у которых значение совпадает с их индексом

В заданном тексте (первая строка) подсчитать количество буквосочетания, введенного во второй строке - C++
В заданном тексте (первая строка) подсчитать количество буквосочетания, введенного во второй строке. Помогите ,пожалуйста!Заранее...

Найти элементы массива, в которых значение совпадает с порядковым номером и подсчитать их количество - C++
#include <iostream> #include <cmath> #include <iomanip> using namespace std; int main(void) { int n,k=0; srand(time(NULL)); ...

В матрице найти количество строк, у которых все нули - C++
В матрице найти количество строк, у которых все нули (с комментариями если можно)

В матрице найти количество строк, у которых все нули - C++
В матрице найти количество строк, у которых все нули;(через динамический массив) сделайте пожалуйста

Найти количество строк матрицы, элементы которых упорядочены по возрастанию. - C++
Дана матрица размера M × N. Найти количество ее строк, элементы которых упорядочены по возрастанию.


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
zss
Модератор
Эксперт С++
6282 / 5885 / 1905
Регистрация: 18.12.2011
Сообщений: 15,094
Завершенные тесты: 1
22.02.2014, 11:58     Вычислить количество строк, первая половина которых совпадает со второй #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
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
int main()
{
    FILE* ff=fopen("file.txt","rt");
    if(ff==NULL)
    {
       puts("file not opened");
       getch();
       return 1;
    }
     char txt[257];
     int count=0;
    while( fgets(txt,256,ff)!=0)
    {
        int L=strlen(txt);
        if(txt[L-1]=='\n')
        {  L--;txt[L]=0;}// удаляем \n
        char txt2[129];
        strncpy(txt2,txt,L/2);// копируем половину строки
        char* p2=txt+L/2; // указатель на вторую половину
        if(L%2==1)p2++; // если длина нечетная, то один символ пропускаем
        if(srtcmp(txt2,p2)==0)
        {
              count++; // освпали
        }
    }
    printf("совпало %d строк",count);
    getch();
    return 0;
}
Yandex
Объявления
22.02.2014, 11:58     Вычислить количество строк, первая половина которых совпадает со второй
Ответ Создать тему
Опции темы

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