putty에서 작업하고 있습니다.
fgets를 통해 문자열을 입력받고,
strtok를 통해 " "단위로 쪼개서 이차원 문자열 배열에 저장하려 합니다.
그런데 마지막 문자열 배열에 엔터(버퍼)까지 포함되서 저장됩니다...
예를 들어 "cd abc"라고 입력하고 저장된 이차열 배열을 출력하면 아래와 같이 출력이 됩니다.
-----------------
tokens[1]: cd
tokens[2]: abc
tokens[3]: null
-----------------
코드 일부는 아래와 같습니다.
fgets(line, sizeof(line) - 1, stdin);
token = strtok(line, " ");
while (token != NULL)
{
tokens[token_count] = token;
token_count++;
token = strtok(NULL, " ");
}
tokens[token_count] = NULL;
putty가 먼지 알려줘
Fgets()가 new line char까지 저장하기 때문.. 토큰화 하기 전에 new line char를 line 버퍼에서 null로 만들고 시작할 것 - dc App