I'll share the printing part but not the calculation part, though happy to do that to it's just a bit lengthy.
Nonetheless marked outputs are the right/expected output when run stand-alone but fails check50. This is regardless of the input containing or not containing spaces (it's a get_long anyway)
//get checksum
total_number_sum = first_number_sum + second_number_sum;
if(total_number_sum % 10 != 0)
{
card_type = "INVALID";
}
else if (card_number_len == 15 && card_number_digits_forward[0] == 3 && (card_number_digits_forward[1] == 4 || card_number_digits_forward[1] == 7))
{
card_type = "AMEX";
}
else if (card_number_len == 16 && card_number_digits_forward[0] == 5 && card_number_digits_forward[0] > 0 && card_number_digits_forward[0] <= 5)
{
card_type = "MASTERCARD";
}
else if ((card_number_len == 13 || card_number_len == 16) && card_number_digits_forward[0] == 4)
{
card_type = "VISA";
}
else
{
card_type = "INVALID";
}
printf("%s\n", card_type);
Suggestions please?