Я просто пытаюсь выяснить, что происходит в фоновом режиме, когда я токенизирую строку ac с помощью strtok и распечатываю токены с помощью printf с% s.
Так что это пример:
char str[] = "Where - is - the - end - of - tokens?";
const char s[2] = "-";
char *token;
/* get the first token */
token = strtok(str, s);
/* walk through other tokens */
while( token != NULL ) {
printf( " %s\n", token );
token = strtok(NULL, s);
}
return(0);
Мои убеждения: - strtok не создает копию данной строки c, просто возвращает адрес памяти первого символа данной строки c.- printf с% s будет печатать символы с адреса памяти до /0.
Мой вопрос следующий: Как printf знает, где прекратить печатать символы токена с% s?
Пожалуйста, помогите мне понять это поведение printf с% s.