fgets과 strtok 활용법 질문합니다.
, 권 민수님이 작성혼자 코딩을 하던중 어떠한 txt파일을 fgets로 첫줄을 읽어들여서
buf에 문자열을 저장해두었습니다.
숫자와 문자가 공백을 기준으로 엉켜져 입력되어있어서 정렬을 하기위해 45.4에 있는 자른 문자열 보관하기를 이용할려고 했는데,
char buf[100];
char *temp[30] = { NULL, };
FILE *fp_tr = fopen("a.txt", "r");
fgets(buf, 100, fp_tr);
char *ptr = strtok(buf, " ");
while (ptr != '\0'){
temp[i] = ptr;
i++;
ptr = strtok(NULL, " ");
if (temp[i] == '\0')
ptr = NULL;
}
위와 같은 코드 진행시 temp[0]에 공백으로 구분없이 buf전체의 문자열이 들어가는데 무엇이 문제인지 모르겠습니다. temp[1] 부터는 NULL이 들어가있습니다. 왜 공백 기준으로 구분을 못하는지 궁금합니다.
회신: fgets과 strtok 활용법 질문합니다.
, 도장_ 관리자님이 작성Unit 45.4 예제에서는 ptr = NULL처럼 ptr에 NULL을 할당하지 않습니다.
ptr은 strtok 함수에서 사용하는 포인터입니다. 여기에 값을 할당하면 안 됩니다.