„Ciąg” to sekwencja znaków zwykle reprezentująca jednostkę tekstu czytelnego dla człowieka. Pytania na ten temat dotyczą przetwarzania łańcuchów w programach oraz tego, jak różne języki i środowiska definiują łańcuchy i manipulują nimi.
UTF8? UTF16? Czy łańcuchy w PHP śledzą również używane kodowanie? Spójrzmy na przykład na ten skrypt. Powiedz, że biegnę: $original = "शक्नोम्यत्तुम्"; Co się właściwie dzieje? Oczywiście myślę, że $originalnie będzie zawierać tylko 7 znaków. Te glify muszą być reprezentowane przez kilka bajtów. Następnie robię: $converted = mb_convert_encoding ($original , …
Zapytano mnie o niezmienne łańcuchy w Javie. Zadanie polegało mi na napisaniu funkcji, która połączyła liczbę „a” z łańcuchem. Co napisałem: public String foo(int n) { String s = ""; for (int i = 0; i < n; i++) { s = s + "a" } return s; } Zapytano …
Korzystam z biblioteki wewnętrznej, która została zaprojektowana tak, aby naśladować proponowaną bibliotekę C ++ , a czasami w ciągu ostatnich kilku lat widzę, że jej interfejs zmienił się z używania std::stringna string_view. Dlatego sumiennie zmieniam kod, aby dostosować się do nowego interfejsu. Niestety, muszę przekazać parametr std :: string i …
Właśnie oglądałem prezentację Jona Skeeta (z Tony the Pony) z Dev-Days. Chociaż „napisz funkcję odwrotną do łańcucha” to kodowanie wywiadu 101 - nie jestem pewien, czy tak naprawdę można napisać ogólną funkcję odwrotną do ciągu, z pewnością nie taką, która działa we wszystkich lokalizacjach i wszystkich typach ciągów. Oprócz wykrycia, …
Obecnie pracuję nad biblioteką napisaną w C. Wiele funkcji tej biblioteki oczekuje łańcucha jako char*lub const char*w swoich argumentach. Zacząłem od tych funkcji, które zawsze oczekiwały długości łańcucha, size_taby nie było wymagane zakończenie zerowe. Jednak podczas pisania testów spowodowało to częste korzystanie z strlen(): const char* string = "Ugh, strlen …
W obecnej formie to pytanie nie pasuje do naszego formatu pytań i odpowiedzi. Oczekujemy, że odpowiedzi poparte będą faktami, referencjami lub wiedzą fachową, ale to pytanie prawdopodobnie będzie wymagało debaty, argumentów, ankiet lub rozszerzonej dyskusji. Jeśli uważasz, że to pytanie można poprawić i ewentualnie ponownie otworzyć, odwiedź centrum pomocy w …
W tabeli ASCII znaki interpunkcyjne pojawiają się między znakami niedrukowalnymi i przed cyframi ( !"#$%&')*+,-./), między cyframi a dużymi literami ( :;<=>?@), między dużymi literami ( [\]^_`) i małymi literami oraz po małych literach ( {|}~). Na pierwszy rzut oka można się spodziewać, że zostaną one zgrupowane; być może przed …
W produkcyjnej aplikacji internetowej moi koledzy programiści używali StringBuffer wszędzie. Teraz zajmuję się tworzeniem aplikacji i poprawkami. Po przeczytaniu StringBuilder i StringBuffer postanowiłem zastąpić cały kod StringBuffer StringBuilder, ponieważ nie potrzebujemy bezpieczeństwa wątków w naszych komponentach bean danych. Na przykład: (W każdej fasoli danych widzę użycie StringBuffer) @Override public String …
Ostatnio przeprowadzałem kilka potrzebnych optymalizacji. Jedną rzeczą, którą robiłem, jest zmiana niektórych ostringstreams -> sprintfs. Sprint do zestawu std :: strings do tablicy w stylu ac, ala char foo[500]; sprintf(foo, "%s+%s", str1.c_str(), str2.c_str()); Okazuje się, że implementacja std :: string :: c_str () Microsoftu działa w stałym czasie (zwraca tylko …
Obecnie pracuję z systemami osadzonymi i zastanawiam się, jak zaimplementować ciągi w mikroprocesorze bez systemu operacyjnego. Do tej pory używam idei, że NULL kończy wskaźniki wskaźników i traktuje je jako ciągi znaków, w których NULL oznacza koniec. Wiem, że jest to dość powszechne, ale czy zawsze możesz na to liczyć? …
W moim systemie często działają z kodami Airport ( "YYZ", "LAX", "SFO", itp), są one zawsze dokładnie w tym samym formacie (3 litery, reprezentowane jako wielkie litery). System zazwyczaj zajmuje się 25-50 z tych (różnych) kodów na każde żądanie API, z sumą ponad tysiąca alokacji, są one przekazywane przez wiele …
„0”, jako ciąg zawierający jeden znak, nie jest czymś intuicyjnie pustym. Dlaczego PHP traktuje to jako FAŁSZ po konwersji na wartość logiczną, w przeciwieństwie do innych języków programowania?
Pracuję z urządzeniem osadzonym z unikalnym protokołem, który wysyła wiadomości do innych urządzeń i tworzę aplikację, która analizuje wysłane pakiety. Każdy pakiet zawiera 8 bajtów. Protokół jest zdefiniowany jako gdzie pierwszy bajt to nagłówek, a pozostałe 7 bajtów to dane. Próbują przekazać określony ciąg identyfikatora, ale ciąg identyfikatora ma długość …
Biorąc pod uwagę niektóre fragmenty ciągu, chciałbym znaleźć możliwie najkrótszy pojedynczy ciąg („ciąg wyjściowy”), który zawiera wszystkie fragmenty. Fragmenty mogą nakładać się na siebie w ciągu wyjściowym. Przykład: W przypadku fragmentów łańcucha: BCDA AGF ABC Poniższy ciąg wyjściowy zawiera wszystkie fragmenty i został utworzony przez naiwne dołączanie: BCDAAGFABC Jednak ten …
Przypominam sobie z moich dni programowania w C, że gdy dwa łańcuchy są połączone, system operacyjny musi przydzielić pamięć dla połączonego łańcucha, następnie program może skopiować cały tekst łańcucha do nowego obszaru w pamięci, a następnie stara pamięć musi ręcznie być uwolnionym. Jeśli więc jest to wykonywane wielokrotnie, tak jak …
Używamy plików cookie i innych technologii śledzenia w celu poprawy komfortu przeglądania naszej witryny, aby wyświetlać spersonalizowane treści i ukierunkowane reklamy, analizować ruch w naszej witrynie, i zrozumieć, skąd pochodzą nasi goście.
Kontynuując, wyrażasz zgodę na korzystanie z plików cookie i innych technologii śledzenia oraz potwierdzasz, że masz co najmniej 16 lat lub zgodę rodzica lub opiekuna.