|
論壇說明 |
歡迎您來到『史萊姆論壇』 ^___^ 您目前正以訪客的身份瀏覽本論壇,訪客所擁有的權限將受到限制,您可以瀏覽本論壇大部份的版區與文章,但您將無法參與任何討論或是使用私人訊息與其他會員交流。若您希望擁有完整的使用權限,請註冊成為我們的一份子,註冊的程序十分簡單、快速,而且最重要的是--註冊是完全免費的! 請點擊這裡:『註冊成為我們的一份子!』 |
|
主題工具 | 顯示模式 |
2007-03-20, 07:39 PM | #1 |
|
疑問 - [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,
|