Найти повторяющиеся строки (от 2-х и больше) и сообщить их кол-во

Друзья, помогите мне пожалуйста закончить программу.

  1. От программы нужно чтобы он открывал текстовый файл (в котором находятся несколько строк на английском языке). Подсчитал их количество.
  2. Сравнил каждую строку.
  3. И найти повторяющиеся строки (от 2-х и больше) и сообщить их количество.
#include <stdio.h>
#include <alloc.h>
#include <string.h>

int strcmp(char *str1, char *str2);     // прототип

struct node
{
  char *str;
  node *next;
};

void myread (FILE *fp, node *head);      // прототип
int count (node *head);                  // прототип

void main()                              
{
  FILE *fp=fopen("my.txt", "rt");
  node head ={" ", NULL};
  myread (fp,&head);
  int n;
  n=count(&head);
  printf("n=%d", n);
}

void myread (FILE *fp, node *head)
{
  char buf[100];
  while (!feof(fp))
   {
     fgets (buf,100,fp);                          // чтение строки
     node *t=(node*)malloc(sizeof(node));          
     t -> str=(char*)malloc(strlen(buf)+1);
     strcpy (t -> str, buf);
     t -> next=NULL;
     head -> next=t;
     head=t;
   }
}

int count (node *head)                    
{
  int c=0;
  while (head -> next)
    {
       c++;
       head=head->next;
    }
  return  c;
}                 // 1    // на этом моменте программа видит что кол-во строк 4
// остался 2 и 3 пункт

Вам будет удобнее считывать строки из файла в массив char *lines[], после чего в цикле по этому массиву пробежаться и сравнить каждый элемент (строку) со всеми остальными. При совпадении строк увеличивать счетчик, после чего сразу переходить к проверке следующей строки.

Внимание! Это довольно старый топик, посты в него не попадут в новые, и их никто не увидит. Пишите пост, если хотите просто дополнить топик, а чтобы задать новый вопрос — начните новый.

Ответить

Вы можете использовать разметку markdown для оформления комментариев и постов. Используйте функцию предпросмотра для проверки корректности разметки.

Пожалуйста, оформляйте исходный код в соответствии с правилами разметки. Для того, чтобы вставить код в комментарий, скопируйте его в текстовое поле ниже, после чего выделите то, что скопировали и нажмите кнопку «код» в панели инструментов. Иначе ваш код может принять нечитаемый вид.

Либо производите оформление кода вручную, следующим образом:

``` #include <iostream> using namespace std; int main() { // ... } ```

Предпросмотр сообщения

Ваше сообщение пусто.