我自己也面临着挑战,要制作一个程序,它需要一个int,并且必须打印相应的ASCII字母,就像这样:如果数字是65,它应该打印出A
等等。但我不知道如何做到这一点。这是我迄今为止的代码:
#include <cs50.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(void)
{
for (int i = 65; i < 81; i++)
{
printf("%sn", i);
}
}
我需要在string b = NULL;
和printf("%sn", b);
之间的位置添加某种函数,但我不知道应该使用哪个函数。最后,它应该按顺序打印出字母表中的所有字母,每个字母都有自己的行。如果你碰巧知道一个可以帮助我的功能,请告诉我。
p.S
如果我像上面的例子一样做,我会得到以下错误消息:
clang -ggdb3 -O0 -std=c11 -Wall -Werror -Wextra -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wshadow try.c -lcrypt -lcs50 -lm -o try
try.c:12:18: error: format specifies type 'char *' but the argument has type 'int' [-Werror,-Wformat]
printf("%sn", i);
~~ ^
%d
1 error generated.
<builtin>: recipe for target 'try' failed
make: *** [try] Error 1
最后,它应该按顺序打印出字母表中的所有字母,每个字母都有自己的行。
您实际上并不需要函数来实现这一点。此外,string
是错误的选择,因为您只想打印字符。这个for
可能会做你希望做的事情:
for (int i = 0; i < 26; ++i)
{
printf("%cn", i + 'a');
}
我使用了这个:
int integer = // your int ;
char c = integer;
它非常简单,使它成为一个字符。
此外,您可以使用<ctype.h>
中的isascii
检查结果
我想你什么都不需要。它应该在您第%s天时自动将整数打印为字符。
简单操作:
for(int i = 0; i < 26; i++)
{
printf("%sn", i);
}```