这是一个C程序,我试图打印一个ASCII字符列表。我可以让程序打印一系列数字, 我无法打印列表中每个数字的ASCII值。
#include <stdio.h>
#define N 127
int main(void)
{
int n;
int c;
for (n=32; n<=N; n++) {
char c = atoi( n);
printf("%d", c);
}
return 0;
}
答案 0 :(得分:4)
atoi
将ASCII转换为int
。你正在传递它n
。 n
不是ASCII;它是int
。因此,atoi(n)
不起作用。
删除之后,您要执行的操作是打印n
表示的ASCII字符。你这样做:
printf("%c", n);
您可能希望用其编号标记每个字符,如下所示:
for (n=32; n<=N; n++) {
printf("%d: %c\n", n, n);
}
顺便提及。这要求您的C实现使用ASCII作为其执行字符集(以及其“C语言环境”)。很多人。但是,此程序无法移植到使用不同字符集的实现。
答案 1 :(得分:1)
使用%c作为ASCII值,如下所示:printf("%d, %c\n", n, n);
然后删除atoi()
行。
答案 2 :(得分:1)
替换
printf("%d", c)
带
printf("%c", c)
另外,你不需要atoi。
以下就足够了:
int main(void)
{
int n;
for (n=32; n<=N; n++) {
printf("%c", n);
}
return 0;
}
答案 3 :(得分:1)
您应该使用%c作为格式说明符而不是%d。
#include <stdio.h>
#include <conio.h>
#define N 127
int main(void)
{
int n;
for (n=32; n<=N; n++)
printf("%c", n);
getch();
return 0;
}
答案 4 :(得分:1)
答案 5 :(得分:1)
for (n=32; n<=N; n++) {
printf("%c", n);
}
您可以使用n
%c
字符
请注意,您定义了两个变量c
,内部变量char c
)将遮蔽外部变量int c
),这是有效的C,但通常是不好的做法。
答案 6 :(得分:1)
Atoi在int表示中转换ascii条目。 该计划是:
#include <stdio.h>
#define N 127
int main()
{
int n;
for (n=32; n<=N; n++)
printf("%c",n) ;
return 0;
}
答案 7 :(得分:0)
#include <stdio.h>
int main() {
// for loop // outputs |data type|
// for(int i='a';i<='z';putchar(i),i++); // a,b,c...x,y,z | char |
// for(int i='a';i<='z';printf("%c\n",i),i++); // a,b,c...x,y,z | char |
// for(int i='A';i<='Z';putchar(i),i++); // A,B,C...X,Y,Z | char |
for(int i='a';i<='z';printf("%d\n",i),i++); // 97,98,99..120,121,122 | ascii |
//for(int i='a';i<='z';printf("%x\n",i),i++); // 61,62,63 ,78,79,7a | hex |
//// for(int i='a';i<'z';printf("%d\n",i),F(i < 5),i++);
// for(int i='a';i<='z'; printf("%c\n",i),i++);
return 0;
}