c - 为什么此代码没有按预期打印小写字母?

标签 c

问题是要求用小写字母填充数组,然后打印它们。我得到的输出是大写字母,以 F 开头,Z 后面 5 个位置。为什么?

#include <stdio.h>
#include <string.h>

int main(int argc, const char **argv)
{   
    char alphabet[27];
    char i;

    for(i = 'a'; i <= 'z'; i++)
        printf("%c", &alphabet[i]);

    return 0;
}

最佳答案

您的代码有两个问题。

  1. 你永远不会初始化char alphabet[27] 。如果你正在初始化它,你将永远不会得到你想要的东西。

  2. 假设您初始化了它,您可以执行以下操作

    for(i = 'a'; i <= 'z'; i++) printf("%c", &alphabet[i - 'a']);

  3. 如果您只想打印字母表,只需执行以下操作:

    for(i = 'a'; i <= 'z'; i++) printf("%c", i);

关于c - 为什么此代码没有按预期打印小写字母?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43858694/

相关文章:

C使用枚举来缩短代码

C:通过printf()打印出来的double可以有多长

c - strcastr 仍然无法正常工作

c++ - 从不同的架构加载 dylib

c - C 中的内存分配 - 缩写词 :)

c - Unix 域套接字 (AF_UNIX) 中数据报队列长度的默认大小是多少?它是可配置的吗?

c - 有什么技巧可以更简单地定义多行 C 宏吗?

c - 如何使用已经接受输入的单个 scanf 函数退出循环?

c - 使用 C 将小写字母转换为大写字母

c - 从文件中读取以逗号分隔的 "quoted"字符串