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

Random letter in C [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