Kilka operacji na stringu
Ostatnio zmodyfikowano 2012-08-21 14:23
Mrovqa |
» 2012-08-21 13:55:58 jak poprawnie zadeklarować warunek pętli, bo podejrzewam że coś jest nie tak :P |
Masz na myśli strlen? dlaczego warunek w pętli nigdy się nie spełnia? |
Chyba masz na myśli ifa, co? Warunek pętli to jest to, co znajduję się w nawiasie za słowem while. if( ps[ znak ] == '/' ) To co napisałeś, to znaczy mniej więcej tyle: czy suma adresu tablicy i nr znaku jest równy adresowi stringu "/" ? |
|
|
ksry Temat założony przez niniejszego użytkownika |
» 2012-08-21 14:05:22 Tak, o strlen mi chodziło. Dzięki. Co do warunku, zdążyłem poprawić, ale wiadomo było o co chodzi. Zlicza mi już linijki, jestem Ci wdzięczny. Jak reszta pójdzie dobrze to zamknę temat. Jeszcze jedno pytanie dodałem, mogłeś nie zauważyć. Jak mógłbyś udzielić swojej opinii: - dobrze będzie zamienić \n na / (tekst nie będzie wyświetlany nigdy, będzie trzymany w zmiennej a później zapisywany i czytany z pliku do stringu)? |
plik dodatkowo pewnie będzie kodowany :P aktualny kod, dla potomnych: #include <iostream> #include <string.h>
int main() { char* ps = "12345/12345/12345"; int linia = 1; //aktualnie skanowana linijka int znak = 0; //wskaznik zaczyna od 0
while(znak <= strlen(ps)) { if(ps[znak] == '/') linia++; znak++; } std::cout << "Liczba znakow to: " << (znak-linia) << std::endl; std::cout << "Liczba linii to: " << linia; return 0; } |
|
Mrovqa |
» 2012-08-21 14:23:32 dobrze będzie zamienić \n na / (tekst nie będzie wyświetlany nigdy, będzie trzymany w zmiennej a później zapisywany i czytany z pliku do stringu) |
A co, gdyby w tekście był ten slash? Byłby problem z późniejszą interpretacją. Zostaw \n - co Ci szkodzi? Od razu będzie wiadomo, że chodzi o nową linię. |
|
1 « 2 » |