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
我正在尝试生成一些随机名称,但我遇到了一个问题。以下是我尝试选择字母的方法:
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