2016-08-15 4 views
-4

나는 fgetc을 사용하여 파일에서 읽고 있는데, 그렇게하면 char가 생기게됩니다. 그러나, 나는이 문자를 strtok 함수를 사용할 수있는 문자열로 변환하고 싶습니다. 이 일을 어떻게 하죠? 당신이 경우 동일한 기능을 수행 할 리터럴 화합물을 사용C에서 문자를 문자열로 바꾸는 경우

char str[] = {ch, '\0'}; 

또는 :

int xp; 
while(1) { 
    xp = fgetc(filename); 
    char xpchar = xp; 
    //convert xpchar into a string 
} 
+1

'char' 배열을 만들고 그 안에 저장을 시작하십시오 .... 실제로 당신의 질문은 무엇입니까? –

+0

문자열은 끝에 null 문자가있는 문자 배열입니다. – Barmar

+0

인쇄 할 수 있습니다. printf ("% c", xpchar); 그러나 % s를 사용하고 싶습니다. –

답변

1

간단히 두 항목, 캐릭터 및 null 종결와 배열을 생성

(char[]){ch, '\0'} 

복합 리터럴을 사용하면 표현식 안에서 직접 문자를 변환 할 수 있습니다.

printf("%s", (char[]){ch, '\0'}); 
0

내가, 당신이 파일에서 단지 하나의 문자를 읽어, 그래서 다음 예를 살펴하려고한다고 가정

#define STR_SIZE 10 
    // STR_SIZE defines the maximum number of characters to be read from file 
    int xp; 
    char str[STR_SIZE + 1] = { 0 }; // here all array of char is filled with 0 
        // +1 in array size ensure that at least one '\0' char 
        // will be in array to be the end of string 
    int strCnt = 0; // this is the conter of characters stored in the array 
    while (1) { 
     xp = fgetc(f); 
     char xpchar = xp; 
     //convert xpchar into a string 
     str[strCnt] = xpchar; // store character to next free position of array 
     strCnt++; 
     if (strCnt >= STR_SIZE) // if array if filled 
      break;    // stop reading from file 
    } 

그리고 파일 포인터 변수의 이름 - filename 이상한 모양 (filename는 좋은 이름입니다 프로그램에서 그 파일의 이름 만 fgetcgetc 필요 FILE *)를 저장, 그래서 확인 문자열 변수에 대한 당신 같은이 :

FILE * f = fopen(filename, "r"); 

또는 filename을 위해 이름을 변경을 통해 생각합니다.

관련 문제