Witam.
Proszę was o pomoc przy rozwiązaniu mojego problemu. Jestem dopiero na początku swojej nauki języka C i mam do napisania program, w którym wczytuje dane z pliku tekstowego, następnie porównuje wiersze(program ma porównywać litery w odpowiednich kolumnach dwóch wierszy aż do momentu kiedy znajdzie różnice i zdecyduje który wynik ma być wypisany pierwszy). Po sortowaniu wyniki miały być ustawione w kolejności alfabetycznej(mamy wiersze abd jop aab a kolejność po sortowaniu aab abd jop i wszystkich czynnościach wyświetlone w odpowiedniej kolejności).
Oto kod:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stdbool.h>
#include <time.h>
#include <conio.h>
int porownaj(char *a, char *b)
{
int lenght;
int lenght1 = strlen(a);
int lenght2 = strlen(b);
if (lenght1 < lenght2)
lenght = lenght1;
else
lenght = lenght2;
int i;
for(i=0;i<lenght;i++)
{
if((int) a[i]> (int) b[i])
return 0;
else
return 1;
}
if(lenght2<lenght1)
return 0;
}
void wstaw(char *n, char *tabw[], int licznik)
{
int a;
int b = -1;
int i;
for (i = 0; i<licznik; i++)
{
a = porownaj(n, tabw[i]);
if (a == 1)
{
b = i;
break;
}
}
if (b == -1)
{
b = licznik++;
}
for (i = licznik; i >= b; --i)
{
strcpy(tabw[i + 1], tabw[i]);
}
strcpy(tabw[b], n);
}
int main(int argc, char *argv[])
{
char n[256];
char *tabw[100];
int i;
for (i = 0; i < 100; i++)
{
tabw[i] = (char *)malloc(sizeof(char*));
}
FILE *fp;
fp = fopen("", "r");
if (fp == NULL)
printf("nie otworzono pliku");
char c;
while((c=fgetc(fp))!=EOF)
{
printf("%c",c);
}
int licznik = 0;
while (!feof(fp) || licznik>100)
{
fgets(n, 256, fp);
wstaw(n, tabw, licznik);
licznik++;
}
for (i = 0; i < licznik; i++)
printf("%s\n", tabw[i]);
return 0;
}
Proszę o pomoc.