c - C 中的随机字母 [段错误]

标签 c arrays char segmentation-fault

我正在尝试生成一些随机名称,但遇到了问题。以下是我尝试选择字母的方法:

char alf[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
char letter = alf[rand()%26];  
printf("%s\n", alf);
printf("%s\n", letter);

它可以编译,但是当我尝试运行它时,我在第一个 printf 之后出现段错误,并发出警告:

format '%s'expects argument of type 'char*', but argument 2 has type 'int'

我做错了什么?

最佳答案

letter 是单个字符,因此,您应该使用 %c 而不是 %s 来正确格式化它。

有关 printf 格式的更多信息,请访问此页面:http://www.cplusplus.com/reference/cstdio/printf/?kw=printf

关于c - C 中的随机字母 [段错误],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29158055/

相关文章:

c - 为什么函数指针有 12 个字节长?

c - 为什么声明一个长度为 INT_MAX 的 int 数组会产生段错误?

ruby - 如何在 Ruby 中创建哈希数组

c++ - 如何在 C 中将多字符常量转换为整数?

c - printf 不打印

c - 无法使用 realloc : "invalid next size" 扩展数组

c - 为什么我在尝试将 'char (*c)[6]' 传递给需要 'const char (*c)[6]' 的函数时收到警告?

c - INT_MAX 在 If 语句中的行为不正确

c - 使用递归查找数组的最小元素

c++ - p 周围的堆栈已损坏 c++