W STL, kiedy robię s.find("")
, zwraca 0, podczas gdy s.find_first_of("")
zwraca -1 (npos). Jaki jest powód tej różnicy?find vs find_first_of przy wyszukiwaniu pustego ciągu znaków
Odpowiedz
s.find(t)
znajduje pierwsze wystąpienie podłańcucha t
w s
. Jeśli t
jest pusta, to zjawisko jest na początku s
i s.find(t)
powróci 0.
s.find_first_of(t)
znajdzie pierwsze wystąpienie jednego z bohaterów w t
. Jeśli t
jest pustym łańcuchem, to w t
nie ma znaków, więc nie można znaleźć wystąpienia, a find_first_of
zwróci npos
.
, ale początek łańcucha nie ma "". ma "a" prawo?, jak w twoim przykładzie. should s.find ("') zwraca także -1? –
@littlecegian:" "składa się z zerowych znaków iz pewnością istnieje podciąg o długości 0 na początku dowolnego ciągu znaków. (Istnieje również podłańcuch o długości 0, począwszy od w każdej innej pozycji w łańcuchu, jeśli istnieją inne pozycje, ale jedna w pozycji 0 jest najdalsza od lewej). – rici
jeśli tak jest, to find_first_of powinno również zwracać 0, ponieważ, ze wszystkich znaków w "" pusty łańcuch jest znak, który po wyszukaniu zwraca 0. right? –
- 1. Wywołanie c_str pustego ciągu znaków
- 2. COALESCE vs IS NOT NULL wydajność przy sprawdzaniu pustego ciągu znaków
- 3. Szyny .where vs .find
- 4. Zwracanie pustego ciągu znaków: efektywny sposób w C++
- 5. Dopasowywanie SUMA.IF przy częściowym wyszukiwaniu
- 6. Podłoża ciągu znaków przy użyciu języka Python
- 7. zliczanie częstotliwości znaków w ciągu znaków przy użyciu javascript
- 8. Python zwracający niepoprawną długość ciągu znaków przy użyciu znaków specjalnych
- 9. DataTable.Select vs DataTable.rows.Find vs foreach vs Find (Predicate <T>)/Lambda
- 10. Excel: dopasowanie ostatniego znaku/ciągu w ciągu znaków
- 11. Usuwanie znaków z ciągu znaków
- 12. W jaki sposób hibernacja używa pustego ciągu dla ograniczenia równości?
- 13. Testowanie pustego lub zerowego łańcucha znaków
- 14. Usuwanie znaku pustego z łańcucha znaków w javascript
- 15. Wybieranie tylko pierwszych kilku znaków w ciągu znaków C++
- 16. Dlaczego "ciąg znaków" jest uważany za uproszczoną wersję "ciągu znaków"?
- 17. Zarys scenariusza ogórka: Przekazywanie pustego ciągu znaków "" jako wartość w tabeli przykładów
- 18. grep bez ciągu znaków
- 19. Tłumaczenie przypisanego ciągu znaków
- 20. Pierwsze 10 znaków ciągu?
- 21. Nieokreślona stała ciągu znaków
- 22. Opcje inicjalizacji ciągu znaków
- 23. Parsowanie ciągu znaków
- 24. Funkcje ciągu znaków?
- 25. Usuwanie akcentów/znaków diakrytycznych z ciągu znaków przy zachowaniu innych znaków specjalnych (wypróbowano mb_chars.normalize i iconv)
- 26. F #: Konwertowanie ciągu znaków na tablicę bajtów
- 27. Jak wymienić ostatnie wystąpienie znaków w ciągu przy użyciu javascript
- 28. Podział wielojęzykowego ciągu znaków przy użyciu Regexa na tokeny jednojęzyczne
- 29. usunąć znaczniki html z ciągu znaków przy użyciu java
- 30. Wstawianie wielu wartości w tabeli przy użyciu ciągu znaków
Spodziewam się, że 's.find (" ");' zwróci 0 (i zrobi to przy pomocy użytecznych implementacji). Na przykład: http://coliru.stacked-crooked.com/a/3d5a6076bde75e28 –
prawda. dzięki za wskazanie tego. dokonał zmiany na pytanie. nadal nie wyjaśnia różnicy –