Получите подстроку char * Например, у меня есть это char *buff = "this is a test string"; и хотите получить "test". Как я могу это сделать? Ответ 1 char subbuff[5]; memcpy( subbuff, &buff[10], 4 ); subbuff[4] = '\0'; Задание выполнено:) Ответ 2 Предполагая, что вы знаете позицию и длину подстроки: char *buff = "this is a test string"; printf("%.*s", 4, buff + 10); Вы могли бы достичь того же, копируя подстроку в другой пункт назначения памяти, но это не разумно, так как вы уже имеете ее в памяти. Это хороший пример избежания ненужного копирования с помощью указателей. Ответ 3 Используйте char* strncpy(char* dest, char* src, int n) из <cstring>. В вашем случае вам нужно будет использовать следующий код: char* substr = malloc(4); strncpy(substr, buff+10, 4); Полная документация по функции strncpy здесь. Ответ 4 Вы можете использовать strstr. Пример кода здесь. Обратите внимание, что возвращаемый результат не завершается нулем. Ответ 5 Вы можете просто использовать strstr() от <string.h> $man strstr
Ответ 2 Предполагая, что вы знаете позицию и длину подстроки: char *buff = "this is a test string"; printf("%.*s", 4, buff + 10); Вы могли бы достичь того же, копируя подстроку в другой пункт назначения памяти, но это не разумно, так как вы уже имеете ее в памяти. Это хороший пример избежания ненужного копирования с помощью указателей.
Ответ 3 Используйте char* strncpy(char* dest, char* src, int n) из <cstring>. В вашем случае вам нужно будет использовать следующий код: char* substr = malloc(4); strncpy(substr, buff+10, 4); Полная документация по функции strncpy здесь.
Ответ 4 Вы можете использовать strstr. Пример кода здесь. Обратите внимание, что возвращаемый результат не завершается нулем.