检查 int_long 变量第一个字符是否等于 c 中的某个数字

Check if int_long variable first character is equal to a certain number in c

我目前正在学习 cs50 计算机科学哈佛在线课程,我目前的挑战是检查变量中的第一个字符是否等于数字,这是我的代码

#include <cs50.h>
#include <stdio.h>

int main(void) {
    long card;
    char n = card[0];
    do {
    card = get_long("Enter Credit Card Number: ");
    } while (card < 15);

    if (n == 3) {
        printf("AMEX\n");
    }



    /*
    AMEX\n 34 or 37;
    MASTERCARD\n 51, 52, 53, 54, or 55
    VISA\n  4
    INVALID\n
    */
}

伪代码如下

    if (input first number is equal to 3) {
        print "AMEX" //new line
    } else if (input first number is equal to 5) {
        print "MASTERCARD"8 //new line
    }

这里是Challenge link

我试过了

if (card[0] == 3) {
    printf("AMEX\n");
}

但由于它不是数组,因此无法正常工作。

我也尝试在线搜索答案,但由于我根本不熟悉 c(我学习 HTML、css、javascript 并做出反应)我不不太懂c

的布局

抱歉,如果我的 post 有点难以阅读我是整个 Whosebug 的新手,如果您需要其他任何东西,请问

也许你想要这样的东西(假设 get_long returns 一个 64 位整数):

int main(void) {
    int64_t card;
    int n;

    do {
        card = get_long("Enter Credit Card Number: ");
    } while (card < 10000000000000LL);
    n = card / 100000000000000LL;
    if (n == 3) puts("AmEx");
    else if (n == 4) puts("Visa");
    else if (n == 5) puts("Mastercard");
    else if (n == 6) puts("Discover");
    else puts("Invalid!");
}

(注意 Discover Card # 以 6 开头)