2017-03-10 33 views
-1

我對C很陌生,我正在嘗試編寫一個輸入爲getchar的循環,然後使用putchar從輸入中只打印U和K。For循環和getchar/putchar在C中的使用

我嘗試這樣做:

printf("Enter a bunch of letters: "); 

char ch; 
while (ch != 'x') { 
    ch = getchar(); 
    if (ch >= 'a' && ch <= 'z') { 
     putchar(ch - 32); 
     ch; 
    } 
} 
+2

歡迎來到Stack Overflow!如果您向我們展示一些代碼,我們將能夠幫助您更多;你有什麼嘗試? –

+0

我現在添加了我的代碼。我對C很陌生,所以我會很感激任何幫助。謝謝! – Rossie

+1

該代碼是完全無關你的問題... –

回答

1

我看來像你想讀取輸入纔開始進入的「x」,然後打印將U和K公司的上述輸入。嘗試這個。

根據你的評論,似乎你想打印他們作爲上層,不管他們是否被讀爲上層。您可以使用tolower()

char ch; 
while ((ch = getchar()) != 'x') 
    if (toupper(ch) == 'U' || toupper(ch) == 'K') 
     putchar(toupper(ch)); 
+0

非常感謝,這是我正在尋找的答案。雖然我很想知道如何將使用putchar的字符轉換爲大寫字母。 – Rossie

+0

@Sinem我猜你的意思是你想忽略字符的情況下,並將它們打印爲大寫?我會更新以包含這一點。 –

+0

是的,先生,非常感謝。我現在真的瞭解到了,謝謝你! – Rossie

0
#include <stdio.h> 
int main() 
{ 
    puts("(I will print U and K only): "); 
    int c; 
    while(EOF != (c=getchar())){ 
     if(c=='U'||c=='K') 
      putchar(c); 
    } 
} 
+0

非常感謝,看起來非常相似的其他答案,也是我非常期待的。 – Rossie