ccharroulette-wheel-selection

How to find the distance between characters in C with wrap-around


I'm trying to find the distance between two characters in the alphabet. However, it's OK to go from A->Z or Z->A in one step. Given two characters, how do I find the distance?


Solution

  • Subtract the two characters from each other making the result positive if it's negative.

    From there, the answer is either that value, or if it's more than 13, it's 26 - value.

    char a = '<SOME LETTER>';
    char b = '<SOME LETTER>';
    
    char distance = abs(a-b);
    if (distance > 13) {
      distance = 26 - distance;
    }