Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!
Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.
Witam, od razu zaznaczę, że jestem kompletnym laikiem jeżeli chodzi o programowanie, a muszę zrobić na najbliższe dni program który kopiuje plik tekstowy i zapisuje pod inną nazwą sortując słowa wewnątrz kolejnością alfabetyczną. O ile program kopiujący udało mi się zrobić
#include <stdio.h> #include <stdlib.h> int main(int argc, char *argv[]) { FILE *in, *out; char ch, b; b=argv[3][0]; if((in=fopen(argv[1], "rb")) == NULL) { printf("I can't see any file named that way! \n"); exit(1); } in=fopen(argv[1], "r"); out=fopen(argv[2], "w"); while(1) { ch=fgetc(in); if (ch==b) ch='*'; if(ch==EOF) break; else putc (ch, out); } printf("File copied succesfully!"); fclose(in); fclose(out); }
O tyle nie mam bladego pojęcia jak posortować słowa wewnątrz tego programu alfabetycznie. Na forum znalazłem jak można to zrobić w C++, ale nic mi to nie mówi, gdyż nie rozumiem tego języka.
Proszę o pomoc.
Offline
nie zrobisz tego bezposrednio w takim kodzie ... sortowanie wymaga wczytania calosci danych do pamieci i manipulowania nimi lub kilkukrotnego czytania danych wejsciowych (moznaby zainteresowac sie mmap)... a tu masz kopiowanie znak po znaku ...
przyjrzyj sie dzialaniu np. programu sort ... mozesz tez popatrzec w zrodla jak to tam jest zrobione ...
jezeli to ma po prostu za dzialac (i nie ma wymogow do tego jak to ma byc realizowane) to moznaby sie pokusic o pipe(), fortk() i exec("sort") ...
Offline
No ja rozwiązuje właśnie podobny problem.
Mój pomysł jest taki: porównywać stringi poprzez strcmp(string1, string2) i badać co funkcja zwróci. I ustawiać w ten sposób, żeby różnice tego co zwróci strcmp() były jak najmniejsze pomiędzy kolejnymi elementami.
http://pl.wikibooks.org/wiki/C/strcmp
Ostatnio edytowany przez Piotr3ks (2011-01-25 23:17:30)
Offline
Nie umiem programować ale... może wykorzystaj do tego tablice ASCII?
Znaki A-Z są od 65 do 90 i a-z od 97 do 122, wtedy wykorzystując stringi jakoś to powinno zadziałać :)
Offline
k4misiek napisał(-a):
Nie umiem programować ale... może wykorzystaj do tego tablice ASCII?
Znaki A-Z są od 65 do 90 i a-z od 97 do 122, wtedy wykorzystując stringi jakoś to powinno zadziałać :)
i to jest droga do ... ocalenia ;].
z czego masz ten program i na kiedy ? ( co studiujesz ).
tu masz kod
http://www.matematyka.pl/96672.htm
http://forum.mapaogame.net/viewtopic.php?t=986
Ostatnio edytowany przez gindek (2011-01-26 11:26:51)
Offline