Я пытаюсь скопировать строку до первой \ n. Я не могу использовать strtok для этого, так как мне нужен strtok для чего-то другого, и он перезаписывает его состояние.
Это строка:
char fileCopy[] = "HELLO: LD X'0A\nJMP HELLO\n";
Вот код, который я написал, с отладочной печатью:
char currLine [255] = {0};
int i = -1;
while (fileCopy[++i] != '\n')
{
currLine[i] = fileCopy[i];
printf("%i %c -> %c\n", i, fileCopy[i], currLine[i]);
}
currLine[i] = '\0';
i++;
printf("%s\n", currLine);
Когда я запускаю его, он печатает это по какой-то причине:
0 ->
1 ->
2 ->
3 ->
4 ♦ -> ♦
5 ->
6 ->
7 ->
8 D -> D
9 ->
10 X -> X
11 ' -> '
12 0 -> 0
13 A -> A
Что, очевидно, не правильные символы, и последний оператор печати зависает и никогда печать. Если я вместо этого использую это для последнего оператора печати:
printf("%s\n", *currLine);
Он печатает "(ноль)".
Что я здесь не так делаю?