Сначала определите требуемый интерфейс ... возможно:
int substring(char *target, size_t tgtlen, const char *source, size_t src_bgn, size_t src_end);
Это принимает целевой (целевой) массив, в который будут скопированы данные, и получает его длину. Данные будут поступать из исходного массива, между позициями src_bgn
и src_end
. Возвращаемое значение будет -1 для ошибки, и длина вывода (исключая завершающий ноль). Если целевая строка слишком короткая, вы получите ошибку.
Имея этот набор деталей, вы можете довольно легко реализовать тело, и на этот раз вполне может подойти strncpy()
(часто это не так).
Использование (на основе вашего вопроса):
char check_type[32] = "111111000000000000000000111111";
char result1[10];
char result2[10];
if (substring(result1, sizeof(result1), check_type, 0, 6) <= 0 ||
substring(result2, sizeof(result2), check_type, 26, 31) <= 0)
...something went wrong...
else
...use result1 and result2...