Чтобы записать BCDEFG
из той же строки, просто передайте указатель на второй байт массива ch
в fwrite
:
char ch[50] = "ABCDEFGH";
FILE *fp = fopen("test.txt", "w");
if (fp != NULL) {
fwrite(ch + 1, 1, 6, fp);
...
}
Обратите внимание, что вы также можете использовать строковый литерал, который является константным массивом символов напрямую:
FILE *fp = fopen("test.txt", "w");
if (fp != NULL) {
fwrite("ABCDEFGH" + 1, 1, 6, fp);
...
}
"ABCDEFGH" + 1
совпадает с &"ABCDEFGH"[1]
, адресом второго байта строки. Массивы распадаются как указатели на их первый элемент при использовании в выражениях, за исключением аргументов sizeof
и _Alignof
.