Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Operacja na stringu

Ostatnio zmodyfikowano 2013-10-24 14:12
Autor Wiadomość
Monika90
» 2013-10-23 22:57:19
Źle używasz substr(), przeczytaj w dokumentacji czym mają być argumenty dla tej funkcji.

A w ogóle lepiej by było gdybyś wczytywał plik raz do tablicy struktur i potem wybierał pytania z tej tablicy.
P-94428
zielonek12
Temat założony przez niniejszego użytkownika
» 2013-10-23 23:08:53
No tak, faktycznie zamiast podać jako drugi argument długość znaków ja podawałem pozycje... Czy może jakaś porada jak "Zdobyć" drugi argument potrzebny do substr()? Ciągnie mnie troszkę do .find() lecz nie wiem czy prawidłowo.
P-94429
Monika90
» 2013-10-23 23:19:48
Jeżeli w[0] jest pozycją pierwszego podciągu, a w[1] pozycją drugiego, to długość pierwszego wynosi w[1]-w[0]-1. Odejmujemy jeden żeby pozbyć się separatora '='.

Jeszcze ci powiem, że pętla wczytująca wiersze z pliku
while( !file.eof() )
 nie wygląda na poprawną...
P-94430
zielonek12
Temat założony przez niniejszego użytkownika
» 2013-10-23 23:33:16
Hmmm... więc mój kod jest teraz taki sobie o: http://pastebin.com/H7P4Mz2B
I to co widzę w konsoli wygląda tak o: http://iv.pl/images/19592054246933802847.png
Nawet moje mało zacne oko dostrzega, że coś jest nie tak ;/

@ A co do pętli... wydaje się, że działa jak na razie więc chyba wolę w pierwszej kolejności ogarnąć ten ciąg znaków.
P-94432
Monika90
» 2013-10-23 23:50:30
To dlatego, że czasami zapisujesz nieprawidłowe pozycje do tablicy w. Czasem i - 1, a czasem i + 1, po co?
P-94433
zielonek12
Temat założony przez niniejszego użytkownika
» 2013-10-23 23:58:35
Bo nie chciałem wyświetlać znaku "równa się", dlatego też uważałem to za dobry pomysł, by czasem cofnąc/przesunąć znacznik o jeden(tak, by nie było widać na początku lub na końcu =.

@W sumie to racja, przyjrzałem się temu dokładniej i jest już dobrze. Zmiany, które zrobiłem to tylko:

if(w[0] < 1)w[0] = i + 1;
else if(w[1] < 1) w[1] = i+1;
else if(w[2] < 1) w[2] = i+1;
else if(w[3] < 1) w[3] = i+1;
else if(w[4] < 1) w[4] = i+1;

Dzięki wszystkim za pomoc :)
P-94434
zielonek12
Temat założony przez niniejszego użytkownika
» 2013-10-24 12:00:21
Program działa, udało mi się :)
Lecz mam jeszcze jedną prośbę to osób, które znają się na c++... mianowicie czy moglibyście zobaczyć mój kod i powiedzieć co zrobiłem źle/niepoprawnie/bezmyślnie/niepotrzebnie etc?
kod cały tutaj: http://pastebin.com/x3uZPELW
zawartosć pliku: http://pastebin.com/U392g54z (na początku i na końcu jest pusta linia).
P-94442
maly
» 2013-10-24 13:44:59
Nikt niewie co wiesz więc trudno o jakąkolwiek ocenę ale przyczepię się do czystości kodu, jest za czysty weź zrób tam trochę syfu :)
P-94446
1 « 2 » 3
Poprzednia strona Strona 2 z 3 Następna strona