該作業包含了很多內容,但不幸的是,我的教授......缺乏解釋。如何打印出用戶的輸入,C中字母的字母?
如果我要讀取用戶的輸入,然後在垂直行中輸入每個字母,我不太確定語法的外觀。
從長遠來看,我們的目標是打印出一個垂直的單詞中的每個字符,然後將它們的二進制值打印到它們的右邊。
例:
Input = Hello
expected output =
H
E
L
L
O
該作業包含了很多內容,但不幸的是,我的教授......缺乏解釋。如何打印出用戶的輸入,C中字母的字母?
如果我要讀取用戶的輸入,然後在垂直行中輸入每個字母,我不太確定語法的外觀。
從長遠來看,我們的目標是打印出一個垂直的單詞中的每個字符,然後將它們的二進制值打印到它們的右邊。
例:
Input = Hello
expected output =
H
E
L
L
O
編程的關鍵之一是將問題分解成更小,更易於管理的部分。一步一個腳印,每增加一個功能。
閱讀用戶的輸入。不要做任何事情,只要讀取它。
按照輸入的內容打印用戶的輸入。
Hello
現在按字符打印輸入字符。打印H
,然後e
,然後l
等您需要爲此編寫一個循環。
Hello
(最終的結果將看起來是一樣的步驟#2中,但是您的代碼會更長,這是在用於下一步驟製備。)
現在打印在單獨的行的每個字符而不是全部在同一條線上。
H
e
l
l
o
最後,在打印它們時將每個字母轉換爲大寫。
H
E
L
L
O
如果你不知道如何做一個特定的步驟,這就是谷歌進來,例如:
這將做到這一點;還有其他方法可以達到同樣的效果:
int c;
while ((c = getchar()) != EOF)
printf("%c\n", c);
它的確取決於您是指「每個字母」還是「每個字符」。如果真的必須是字母,則:
int c;
while ((c = getchar()) != EOF)
{
if (isalpha(c))
printf("%c\n", c);
}
遍歷C風格的字符串(以空字符「\ 0」終止字符數組)你能做到這一點在許多方面。這裏是一個:
while(*ptr) {
printf("%c\n", *ptr);
ptr++;
}
與fgets獲得一串用戶輸入。 fputc是少數輸出命令之一。 把字符'\ n'導致一個新的。 這有幫助嗎。如果您需要完整的工作列表,請發送電子郵件。
我不確定downvotes是必要的。如果我知道如何解決這個問題,我不會問這個問題。 – Coleton 2014-09-23 01:32:51
這個問題只是要求代碼。網上有幾十個示例代碼片斷正在做這件事。所以這個問題沒有用,也沒有顯示研究工作。因此,我低估了。 – mafso 2014-09-23 01:44:44
而你是否知道答案是完全不相關的。你可以回答你自己的問題,這個問題可能是有趣或有用的,不管你是否知道如何解決問題。 – mafso 2014-09-23 01:51:55