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

时间:2016-11-19 20:20:35

标签: c arrays string type-conversion long-integer

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

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

1 个答案:

答案 0 :(得分:1)

您可以在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 =>美国快递,4 =>签证)