2015-12-10 110 views
1

我即將編碼一個標記器,我真的很驚訝,我設法做一個可編譯的代碼:D,但我有一個問題,我不知道如何解決。我開始製作array[WORD_MAX_SIZE]={0}。我使用fopen *'r'後。 Word最大大小是全局定義的。 我的程序運行良好,我得到了我想要的,但我想改變一件事,但我不知道如何。我在While循環結束時將結果輸出到屏幕上。 但我想將整個結果保存在一個string中。而不是打印它,我想在一個字符串集,所以我可以稍後玩。誰能幫忙?C編程 - 數組到字符串

在此先感謝。

while (feof(fp)==0) 
{ 
    c=fgetc(fp); 

    if(isalpha(c)) 
    { 
     array[i]=c; 
     i++; 
    } 
    else if (i!=0) 
    { 
     array[i]='\0'; 
     i=0; 
     printf("%s\n", array); 
    } 
} 

fclose(fp); 

return 0; 
+0

'while(feof(fp)== 0)'將無法正常工作。見http://stackoverflow.com/questions/5431941/why-is-while-feof-file-always-wrong –

回答

1

您可以隨時使用sprintf()而不是printf()。 printf()轉到控制檯。使用sprintf(),您可以選擇打印的位置。

例如:

char returnedArray[100]; // or change the size 
sprintf(returnedArray, "%s\n", array); 

現在,你有你的字符數組(記住你沒有在C字符串)保存在returnedArray。

+0

感謝您的回覆。 如果我使用該表示法sprintf(returnedArray,「%s \ n」,array); 這是否意味着它被保存在一個字符數組中? –

+0

是的,在那之後,數組的內容將被保存在returnedArray中(由於'\ n'最後有一個換行符)。如果這個答案對你有幫助,你能接受嗎? :) – Paulo