일부 텍스트가 포함 된 email.txt라는 파일이 있습니다. 공백이 포함 된 주어진 문자열을 여러 문자열로 분할하려고합니다. 내가 작성한 프로그램은 단어를 별도의 줄로 나누지 않습니다. 파일의 마지막 단어의 출력을 제공합니다. 내 코드는 다음과 같습니다.
#include <stdio.h>
#include <string.h>
#define MAXCHAR 1000
int main()
{
FILE *fp2;
char str2[MAXCHAR];
int line = 0;
char delim[] = " ";
int init_size = strlen(str2);
fp2 = fopen("email.txt","r");
while( fgets( str2, MAXCHAR, fp2 )) {
line++;
// printf(" %s",str2);
}
char *ptr = strtok(str2, delim);
while(ptr != NULL)
{
printf("%s\n", ptr);
ptr = strtok(NULL, delim);
}
return 0;
}
당신이하는 첫번째 파일의 모든 라인을 통해 반복하고 다음 을 통해 당신 루프 strtok()
로 돌아갑니다. 즉, 마지막 으로 읽은 줄만 토큰 화합니다 .
이러한 루프를 중첩해야합니다. 한 줄을 읽고 토큰 화 한 다음 다음 줄을 읽어야합니다.
while( fgets( str2, MAXCHAR, fp2 )) {
char * ptr;
line++;
// printf(" %s",str2);
ptr = strtok(str2, delim);
while(ptr != NULL)
{
printf("%s\n", ptr);
ptr = strtok(NULL, delim);
}
}
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다