C ascii字符列表

时间:2013-08-09 11:09:29

标签: c list ascii

这是一个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;
}

8 个答案:

答案 0 :(得分:4)

atoi将ASCII转换为int。你正在传递它nn不是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)

看看printf formats

实际上,%d用于打印带符号的十进制整数。您想要打印相应的字符,因此您要查找的格式为%c

所以它给出了:

printf("%d", c);

答案 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;
}