首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在C中查找字符的ASCII代码

在C中查找字符的ASCII代码
EN

Stack Overflow用户
提问于 2021-06-23 09:52:14
回答 1查看 73关注 0票数 0

我正在学习C,我创建了一个小程序,它输出输入字符的ASCII代码或从输入的ASCII代码输出字符。它首先询问用户是要将字符转换为ASCII代码还是将ASCII代码转换为字符。

我不知道我的代码有什么问题。当我将它作为一个单独的文件运行时,它可以正常工作。

代码语言:javascript
运行
复制
# include <stdio.h>
int main(void) {
    char character;
    printf("Enter a character: \n");
    scanf("%c", &character);
    printf("The character you entered: %c\n", character);
    printf("ASCII code of %c is %d\n", character, character);
 }

以上代码运行良好。这是将字符转换为ASCII代码的代码。

下面的代码可以选择运行哪个代码:

代码语言:javascript
运行
复制
#include <stdio.h>

int main(void) {
    char option;
    printf("-------- MENU --------\n");
    printf("1. Get ASCII code of a character.\n");
    printf("2. Get character from ASCII code.\n");
    printf(":  ");
    scanf("%s", &option);
    if (option == '1') {
        char character;
        printf("Enter a character: \n");
        scanf("%c", &character);
        printf("The character you entered: %c\n", character);
        printf("ASCII code of %c is %d\n", character, character);
    }
    else {
        if (option == '2') {
            int number;
            printf("Enter a Number: \n");
            scanf("%d", &number);
            printf("The number you entered: %d\n\n", number);
            printf("The ASCII character with code %d is %c\n", number, number);
        }
        else {
            printf("Invalid Input !\n");
        }
    }
}

上述代码要求用户输入1或2以决定将字符转换为ASCII代码或将ASCII代码转换为字符。当我运行这段代码时,如果我选择了选项2,它就可以正常工作,并给出一个正确的结果;如果我给出了3或任何其他无效选项,它就会给我“无效输入!”印在屏幕上。但是,当我选择选项1时,它只会打印出以下内容

代码语言:javascript
运行
复制
-------- MENU --------
1. Get ASCII code of a character.
2. Get character from ASCII code.
:  1
Enter a character: 
The character you entered: 

ASCII code of 
 is 10

我不知道问题出在哪里。请帮我弄清楚。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-06-23 10:01:28

问题是第二个scanf%c。您必须添加一个类似于这个scanf(" %c")的空白。

完整代码:

代码语言:javascript
运行
复制
#include <stdio.h>

int main(void) {
    char option;
    printf("-------- MENU --------\n");
    printf("1. Get ASCII code of a character.\n");
    printf("2. Get character from ASCII code.\n");
    printf(":  ");
    scanf("%s", &option);
    if (option == '1') {
        char character;
        printf("Enter a character: \n");
        scanf(" %c", &character);
        printf("The character you entered: %c\n", character);
        printf("ASCII code of %c is %d\n", character, character);
    }
    else {
        if (option == '2') {
            int number;
            printf("Enter a Number: \n");
            scanf("%d", &number);
            printf("The number you entered: %d\n\n", number);
            printf("The ASCII character with code %d is %c\n", number, number);
        }
        else {
            printf("Invalid Input !\n");
        }
    }
}

输出:

代码语言:javascript
运行
复制
-------- MENU --------
1. Get ASCII code of a character.
2. Get character from ASCII code.
:  1
Enter a character: 
a
The character you entered: a
ASCII code of a is 97

请看下面的question被解释的原因。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68097517

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档