2014-09-23 84 views
-3

该作业包含了很多内容,但不幸的是,我的教授......缺乏解释。如何打印出用户的输入,C中字母的字母?

如果我要读取用户的输入,然后在垂直行中输入每个字母,我不太确定语法的外观。

从长远来看,我们的目标是打印出一个垂直的单词中的每个字符,然后将它们的二进制值打印到它们的右边。

例:

Input = Hello 

expected output = 
H 
E 
L 
L 
O 
+1

我不确定downvotes是必要的。如果我知道如何解决这个问题,我不会问这个问题。 – Coleton 2014-09-23 01:32:51

+0

这个问题只是要求代码。网上有几十个示例代码片断正在做这件事。所以这个问题没有用,也没有显示研究工作。因此,我低估了。 – mafso 2014-09-23 01:44:44

+0

而你是否知道答案是完全不相关的。你可以回答你自己的问题,这个问题可能是有趣或有用的,不管你是否知道如何解决问题。 – mafso 2014-09-23 01:51:55

回答

2

编程的关键之一是将问题分解成更小,更易于管理的部分。一步一个脚印,每增加一个功能。

  1. 阅读用户的输入。不要做任何事情,只要读取它。

  2. 按照输入的内容打印用户的输入。

    Hello 
    
  3. 现在按字符打印输入字符。打印H,然后e,然后l等您需要为此编写一个循环。

    Hello 
    

    (最终的结果将看起来是一样的步骤#2中,但是您的代码会更长,这是在用于下一步骤制备。)

  4. 现在打印在单独的行的每个字符而不是全部在同一条线上。

    H 
    e 
    l 
    l 
    o 
    
  5. 最后,在打印它们时将每个字母转换为大写。

    H 
    E 
    L 
    L 
    O 
    

如果你不知道如何做一个特定的步骤,这就是谷歌进来,例如:

0

这将做到这一点;还有其他方法可以达到同样的效果:

int c; 
while ((c = getchar()) != EOF) 
    printf("%c\n", c); 

它的确取决于您是指“每个字母”还是“每个字符”。如果真的必须是字母,则:

int c; 
while ((c = getchar()) != EOF) 
{ 
    if (isalpha(c)) 
     printf("%c\n", c); 
} 
0

遍历C风格的字符串(以空字符“\ 0”终止字符数组)你能做到这一点在许多方面。这里是一个:

while(*ptr) { 
printf("%c\n", *ptr); 
ptr++; 
} 
0

与fgets获得一串用户输入。 fputc是少数输出命令之一。 把字符'\ n'导致一个新的。 这有帮助吗。如果您需要完整的工作列表,请发送电子邮件。

相关问题