Witam. Zastanawia mnie taki problem.
Mam stringa1 którego sobie już gdzieś tam zadeklarowałem i stringa2, którego wczytuje z klawiatury.
I teraz chce sprawdzić czy np. literka pierwsza ze stringa2 znajduje się w stringu1. Ok z tym nie ma problemu.
Teraz problem. Otóż jeżeli dana literka znajduje się w stringu1 to nie chce już jej ponownie sprawdzać.
Przykład:
string1=probblem;
string2=borr;
I teraz jeżeli w stringu1 znalazłem już literkę b to chcę ją jakby ze sprawdzania wyłączyć. Żeby nie wyszło, że jest 2 razy. Nie wiem czy jest to zrozumiałe co pisze.
Aha, dodam, że jeżeli w stringu2 znajdowałyby się 2 literki b to string1 chciałbym przeszukiwać 2 razy w poszukiwaniu b. Ehh...
Pozdrawiam.
[C++] Porównywanie stringów
- Zordon
- Użytkownik
- Posty: 4977
- Rejestracja: 12 lut 2008, o 21:42
- Płeć: Mężczyzna
- Lokalizacja: Kraków
- Podziękował: 75 razy
- Pomógł: 910 razy
[C++] Porównywanie stringów
Niestety nie. Powiedz może co chcesz docelowo uzyskać.mikkuexc pisze: I teraz jeżeli w stringu1 znalazłem już literkę b to chcę ją jakby ze sprawdzania wyłączyć. Żeby nie wyszło, że jest 2 razy. Nie wiem czy jest to zrozumiałe co pisze.
-
- Użytkownik
- Posty: 65
- Rejestracja: 19 maja 2011, o 20:33
- Płeć: Mężczyzna
- Lokalizacja: Wrocław
- Podziękował: 1 raz
- Pomógł: 5 razy
[C++] Porównywanie stringów
Mamy 2 stringi.
string1=probblem;
string2=borr;
Pierwsza pętla.
Ze stringa2 bierzemy b i porównujemy z każdą literką ze stringa1.
Widzimy, że w stringu1 jest literka b.
Czyli skoro w stringu2 jest tylko jedna literka b to ją wyczerpaliśmy.
I chodzi o to żeby przy następnej pętli program nie brał już pod uwagę literki b bo została ona zużyta.
Ok jeszcze inaczej.
Mamy string1=nierozumiem;
string2=zor;
String 1 jest stały. A stringa2 wpisuje z klawiatury. Chodzi mi to żeby ustalić, który ze stringów miał największy priorytet.
Czyli jeżeli literka z ze stringa2 znajdowała się w stringu1 to priorytet+1.
Jeżeli literka o ze stringa2 znajdowała się z w stringu1 to priorytet+1.
Jeżeli literka r ze stringa2 znajdowała się w stringu1 to priorytet+1.
W tym przypadku nasz priorytet jest równy 3. Ponieważ każda literka ze stringa2 znajduje się w stringu1.
Teraz:
Mamy string1=nierozumiem;
string2=roab;
To tutaj priorytet powinien wyjść 2 ponieważ tylko literki r i o występują w stringu1.
Czyli przy:
string1=nierozumiem;
Chce wpisać na 10 stringów i sprawdzić który był najbliżej stringa1. Nawet nie chodzi o kolejność tylko o zgodność liter.
string1=probblem;
string2=borr;
Pierwsza pętla.
Ze stringa2 bierzemy b i porównujemy z każdą literką ze stringa1.
Widzimy, że w stringu1 jest literka b.
Czyli skoro w stringu2 jest tylko jedna literka b to ją wyczerpaliśmy.
I chodzi o to żeby przy następnej pętli program nie brał już pod uwagę literki b bo została ona zużyta.
Ok jeszcze inaczej.
Mamy string1=nierozumiem;
string2=zor;
String 1 jest stały. A stringa2 wpisuje z klawiatury. Chodzi mi to żeby ustalić, który ze stringów miał największy priorytet.
Czyli jeżeli literka z ze stringa2 znajdowała się w stringu1 to priorytet+1.
Jeżeli literka o ze stringa2 znajdowała się z w stringu1 to priorytet+1.
Jeżeli literka r ze stringa2 znajdowała się w stringu1 to priorytet+1.
W tym przypadku nasz priorytet jest równy 3. Ponieważ każda literka ze stringa2 znajduje się w stringu1.
Teraz:
Mamy string1=nierozumiem;
string2=roab;
To tutaj priorytet powinien wyjść 2 ponieważ tylko literki r i o występują w stringu1.
Czyli przy:
string1=nierozumiem;
Chce wpisać na 10 stringów i sprawdzić który był najbliżej stringa1. Nawet nie chodzi o kolejność tylko o zgodność liter.
-
- Użytkownik
- Posty: 6607
- Rejestracja: 16 sty 2007, o 19:42
- Płeć: Mężczyzna
- Podziękował: 119 razy
- Pomógł: 1823 razy
[C++] Porównywanie stringów
Stwórz sobie Set<char> i wrzucaj do niego użyte literki. Po każdej iteracji sprawdzaj, czy ten set posiada taką literkę. Jak posiada, to znaczy że już ją sprawdzałeś. Tyle.