检查 char 数组的前两个元素并发送到一个整数

Check two first elements of char array and send to an integer

我将虚构的信用卡号存储为 char 数组和 long long。为了检查卡是 VISA、MASTER 还是 AMEX,我必须检查这个 long long 或这个字符串的前两位数字。 万事达卡号码均以 51、52、53、54 或 55 开头 美国运通号码均以 34 或 37 开头 签证号码全部以4

开头

知道怎么做吗? 我试着输入两个单独的整数,稍后用 if/else 检查,但我想可能有更好的方法来解决这个问题。 感谢您的帮助。

您可以在 char 数组上使用一个函数,例如:

inline int starts_with(char *string, char *begin) 
{
    return strncmp(string, begin, strlen(begin));
}

并且只检查常量

#define MASTER_1 "51"
...
#define MASTER_5 "55"

if (starts_with(string, MASTER_1) || starts_with(string, MASTER_2) || etc. )
{
   ...
}
else if (...) {
   ...
}

等等等等

如果你提到的情况是唯一的,你可以只打开第一个数字(因为 5 => master,3 => american express,4 => visa)