使用输入字符串并逐个字符地打印出来

时间:2015-10-28 18:55:00

标签: c

我对编程非常陌生并且决定从C开始。这是我第一个真正的问题,我无法自己解决这个问题。

    #include <stdio.h>
    #include <stdlib.h>

    int main()
    {
        char String[20];
        int CharNo = 0;

        //Asking the User to input some characters to use in the program
        printf("Enter a few characters please:\n");
        scanf("%s", String);

        printf("%c\n", String[0]);

        return 0;
    }

我已经要求用户输入一些随机字符,然后我想要做的就是在新行上按字符打印输入字符串。如果我自己打印出其中一个角色,我自己就可以做到。

对此问题的任何帮助以及我的整体编码将不胜感激。

3 个答案:

答案 0 :(得分:2)

使用for循环!

for (size_t i = 0; i < string_length; ++i) {
     /* print ith character of the string */
}

或者,如果你还在&lt; C99 1 ,在循环之前定义size_t i;并用i = 0初始化它。

注意:

  • 使用scanf("%19s", String)代替抢占缓冲区溢出。 19为终止空字节留出空间
  • 在C中,变量标题通常具有小写标识符,如stringcharNo。如何处理一个标识符中多个单词的连接由您决定。常见的选择是first_secondfirstSecond

1 as @szczurcio在对此答案的评论中指出

答案 1 :(得分:1)

方法1

  1. 获取字符串的长度
  2. 使用循环迭代字符串的长度。
  3. 在循环的每次迭代中,打印一个字符。
  4. int len = strlen(String);
    for (int i = 0; i < len; ++i )
    {
       printf("%c\n", String[i]);
    }
    

    方法2

    1. 创建一个指向字符串的指针。
    2. 使用一个循环,在该循环中递增指针,直到它指向空字符。
    3. 在循环的每次迭代中,打印指针指向的字符。
    4. char* cp = String;
      for ( ; *cp != '\0'; ++cp )
      {
         printf("%c\n", *cp);
      }
      

答案 2 :(得分:0)

    #include <stdio.h>
    #include <stdlib.h>

    int main()
    {
        char String[20];
        int CharNo = 0;
        char *c;

        printf("Enter a few characters please:\n");
        scanf("%s", String);

        c=String;
        while(*c) putchar(*c++);      

        return 0;
    }