У меня есть двоичный файл, который имеет конкретную строку в ней: ^@^Aname^@Team Fortress 2
Поиск строки, которая содержит сбежавшие символы
Это, как я пытался найти его с помощью memmem
:
char *game = "Team Fortress 2";
sprintf(searchString,"\1\1name\1%s\0",game);
...
if(pos = memmem(buffer,result,searchString,strlen(searchString)))
Как я сопрягать экранированные символы ^@
и ^A
? Кажется, \1\1name
, но не с game
в searchString
.
Как '' \ \ "" представлять как '"^@ "' и '"^A "'? –
Control- @ - это нулевой байт, '' \ 0'' в C (потому что '@' подходит до 'A' в ISO 8859-1 и Unicode и т. Д.). '^ A' часто используется для обозначения значения Control-A, байта' '\ 1'' или' '\ 001''. Файлы, содержащие^@, обычно считаются двоичными файлами. –