繁体   English   中英

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

[英]Printing all ASCII characters between two given characters in 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);
    }
}

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

#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);
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM