在C中两个给定字符之间打印所有ASCII字符

时间:2019-02-23 12:12:17

标签: c

我已经编写了一个程序,以打印出两个给定字符之间的所有ASCII字符,但随后将其写入函数中。这两个程序的输出是不同的。我尝试使用指针通过引用传递变量,但是输出不太可能像第一个程序那样。我该怎么做才能正确制作?

这是C中使用线性编程的第一个程序。

#include <stdio.h>>
int main() 
{
    char a,b,tmp;
    int d;
    scanf("%c%c",&a,&b);
    if(a>b) 
    {
        tmp=a;
        a=b;
        b=tmp;
    }
    d = b - a;
    for (char c = a+1;c<b;c++) 
    {
        printf("%c : %d, %o, %X\n",c,c,c,c);
    }
}     

这是函数中的另一个程序。

#include <stdio.h>>

void ascii(char a,char b);

int main() 
{
    char a,b,tmp;
    int d;
    printf("Enter 2 character => ");
    scanf("%c%c",&a,&b);
    ascii(&a,&b);
}

void ascii(char a,char b)
{
    int d;
    if (a>b) 
    {
        char tmp= a;
        a=b;
        b=tmp;
    }
    d=b-a;
    for (char c=a+1;c<b;c++) 
    {
         printf("%c : %d, %o, %X\n",c,c,c,c);
    }
}

1 个答案:

答案 0 :(得分:0)

您不应将正确的变量地址传递给函数

#include <stdio.h>>

void ascii(char a,char b);

int main() 
{
    char a,b,tmp;
    int d;
    printf("Enter 2 character => ");
    scanf("%c%c",&a,&b);
    ascii(a,b);
}

void ascii(char a,char b)
{
    int d;
    if (a>b) 
    {
        char tmp= a;
        a=b;
        b=tmp;
    }
    d=b-a;
    for (char c=a+1;c<b;c++) 
    {
         printf("%c : %d, %o, %X\n",c,c,c,c);
    }
}