Czy ciąg znaków o stałej długości, taki jak "foo" "\x01" "bar"
, może być zapisany jako pojedynczy ciąg literowy (przy jednoczesnym zachowaniu zapisu szesnastkowego)? Z "foo\x01bar"
sekwencja ucieczki wydaje się być interpretowana jako \x01ba
, ponieważ otrzymuję ostrzeżenie "hex escape sequence from the range".Rozdzielanie sekwencji heksadecymalnych w łańcuchach znaków
6
A
Odpowiedz
3
"foo" "\x01" "bar"
jest ciąg literału.
Standard C stwierdza, że szesnastkowa sekwencja specjalna jest najdłuższą sekwencją znaków, która może stanowić sekwencję specjalną. Bez jawnej konkatenacji (co jest powszechnym obejściem tego problemu) kompilator analizuje \x01ba
, który jest oczywiście poza zakresem.
1
Co powiecie na "foo\x01\142ar"
? Czy to oszustwo?
1
Innym rozwiązaniem jest po prostu napisać uciekł charakter w ósemkowym, szesnastkowym zamiast
"foo\1bar"
i nie więcej niejednoznaczności ...
+0
(a jeśli "bar" jest liczbą, użyj do 3 cyfr ósemkowych, takich jak '\ 001') –
Powiązane problemy
- 1. Rozdzielanie ciągu znaków w C++
- 2. Rozpoznawanie podobieństwa w łańcuchach znaków
- 3. referencyjne tablice znaków w łańcuchach android.xml
- 4. Dopasowywanie sekwencji kolejnych znaków w ciągu znaków
- 5. Zastępowanie sekwencji znaków w java
- 6. nodejs: łańcuchach
- 7. Rozdzielanie ciągów w swiftach
- 8. Mysql hamming odległość wartości heksadecymalnych
- 9. Lua: zapisywanie wartości heksadecymalnych jako pliku binarnego
- 10. Algorytm: Drukowanie poprawnego indeksu dla sekwencji znaków
- 11. Efektywne rozdzielanie danych w Pythonie
- 12. Podziały linii w łańcuchach MATLAB
- 13. Niewidoczne znaki w łańcuchach Java
- 14. Sortuj lista łańcuchach daty
- 15. Algorytm szukania długości najdłuższej sekwencji spacji w danym ciągu znaków
- 16. Rozdzielanie rur a oddzielne rzędy
- 17. Rozdzielanie aplikacji i css dostawcy w brunchu
- 18. Symfony2: Rozdzielanie routingu.yml w wielu plikach
- 19. Przechowywanie danych literowych w łańcuchach C++
- 20. PHP: zmienne w łańcuchach bez konkatenacji
- 21. Jak uwzględnić zmienne w łańcuchach zlokalizowanych?
- 22. Python odjęcie dwóch łańcuchach daty
- 23. Co to jest argument "sekwencji znaków" dla funkcji generujących NaN?
- 24. Filtrowanie sekwencji escape ANSI
- 25. Przewidywanie sekwencji postaci?
- 26. Czy istnieje polecenie wstawiania linii znaków w Sublime Text 2?
- 27. Wracając duplikatów w sekwencji
- 28. Konwersja sekwencji sekwencji do słownika i odwrotnie
- 29. Rozdzielanie plików YAML i zastępowanie szablonów
- 30. Rozdzielanie części programistycznych i rozwojowych projektu django
Może „atomowy” string literal jest lepszy opis. –
@AugustKarlstrom: Niestety, sekwencja-heksadecymalna * jest * zdefiniowana * jako dowolna liczba poprawnych cyfr szesnastkowych następujących po '\ x'. W przeciwieństwie do tego, * ósemkowa * -sekwencyjna-sekwencja ('\ 001') działa nie dłużej niż trzy cyfry ósemkowe (* 6.4.4.4 stałe znaków *). Tak więc, nie, musisz albo "zagrywać sztuczki" z notacją szesnastkową, albo wybierać ósemkowe (co nie jest * złe *, gdy się do tego przyzwyczaisz). – DevSolar