我想創建一個程序,從文本文件中讀取一個句子,然後只打印不以元音開頭的單詞。如何從數組中單獨獲取每個單詞並測試它是否適合特定條件? (C)
所以我寫了一個程序,讀取文本文件並將其複製到數組中。現在,我正在努力測試數組中每個單詞是否符合條件(而不是以元音開頭)。
到目前爲止,我只能通過使用strtok函數和使用空格作爲分隔符來實現這一點,但是這也消除了句子中的空格,而這並不是理想的結果。
例如,如果文本文件包含以下語句: 每天一個蘋果會讓醫生遠離醫生。
輸出將是: daykeepsthedoctor
雖然所需的輸出是: 一天,醫生
這是我的計劃:
#include <stdio.h>
#include <string.h>
int vowelwords();
int main()
{
vowelwords();
return 0;
}
int vowelwords()
{
FILE *fPtr;
char text[50];
fPtr = fopen("TEXT1.txt","r"); //to open file
if (fPtr == NULL) //Catch error in fopen function
{
printf("Error in opening file\n");
return 1;
}
fgets(text, 50, fPtr);
fclose(fPtr);
char *c;
c = strtok(text," ");
while(c!= NULL)
{
if(c[0]=='a'||c[0]=='A'||c[0]=='e'||c[0]=='E'||c[0]=='u'||
c[0]=='U'||c[0]=='i'||c[0]=='I'||c[0]=='o'||c[0]=='O')
{
}
else
{
printf("%s", c);
}
c = strtok(NULL," ");
}
printf("\n");
}
爲什麼不用'printf(「%s」,c);'帶一個額外的空間? – Benoit
非常感謝!我不知道我怎麼沒有想到這一點。 –