查看單個文章
舊 2007-03-20, 07:39 PM   #1
bobo21
榮譽勳章

勳章總數
UID -
在線等級:
文章: n/a
精華:
預設 [c語言]想讀出A-Z (ASCII 65-90), _(ASCII 95), a-z(ASCII 97-122)等字元, 忽略其他

從指標裡讀字, 然後寫到螢幕上(stdout)

但我只想讀出 A-Z (ASCII 65-90), _(ASCII 95), a-z(ASCII 97-122) 等字元....忽略其它字元.

例如:
int main()
{
char *string = "Hello! Peter, how are you?"
read(string);
}
int read(FILE *input)
{
int ch = fgetc(input);
while(ch!=EOF)
{
printf("%c", ch);
ch = fgetc(input);
}
}

結果應該是 Hello Peter how are you
我現在只想到用一堆 if statement 來判斷 ch, 然後把correct 這變數當flag用...不過很亂又複雜.

int read(FILE *input)
{
int correct = 0;
int ch = fgetc(input);
while(ch!=EOF)
{
if(ch > '64' && ch < '91')
{correct = 1;}

else if(ch == '95')
{correct = 1;}

else if(ch > '96' && ch < '123')
{correct = 1;}

if(correct)
{
printf("%c", ch);
ch = fgetc(input);
correct = 0;
}
else
{ch = fgetc(input);}
}
}

請教大家不知是否有其他更好的邏輯.

此帖於 2007-03-20 07:44 PM 被 bobo21 編輯. 原因: 標題不清楚
 
送花文章: 0, 收花文章: 0 篇, 收花: 0 次
回覆時引用此帖