Проблема при попытке скопировать часть строки в C - PullRequest
0 голосов
/ 17 марта 2020

Я пытаюсь скопировать строку до первой \ 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);

Он печатает "(ноль)".

Что я здесь не так делаю?

...