c - 使用输入字符串并逐字符打印出来

标签 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;
    }

我要求用户输入一些随机字符,然后我希望能够做的是在新行上逐个字符地打印出输入字符串。如果自己打印出其中一个字符,我只能自己做。

如能就此问题和我的整体编码提供任何帮助,我们将不胜感激。

最佳答案

使用for 循环!

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

或者,如果您仍然是 1,请在循环之前定义 size_t i; 并使用 i = 0 对其进行初始化。

注意事项:

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

1 正如@szczurcio 在此答案的评论中指出的

关于c - 使用输入字符串并逐字符打印出来,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33399336/

相关文章:

c - 函数和指针

C优化中断算法

c++ - 我可以声明一个可以将指向自身的指针作为参数的函数吗?

c - 如何在gcc中编译带有线程的C程序?

c - 如何将数组调用到另一个具有返回值的函数中?

c++ - 从 LLVM 解析树重新生成源代码?

c# - 在不懂 C 的情况下开始学习 C#?

c - 循环打印右对齐

c - 不使用 64 位数据类型的 32 位有符号整数乘法

c - 如何在静态声明期间在结构中指定灵活的数组成员大小