[C++] Porównywanie stringów

mikkuexc
Użytkownik
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

Post autor: mikkuexc »

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.
Awatar użytkownika
Zordon
Użytkownik
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

Post autor: Zordon »

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.
Niestety nie. Powiedz może co chcesz docelowo uzyskać.
mikkuexc
Użytkownik
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

Post autor: mikkuexc »

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.
soku11
Użytkownik
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

Post autor: soku11 »

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.
ODPOWIEDZ