In this case, it is not the question of faster, but a question of which type makes more sense.
In general, working with integers will always be more efficient than working with letters, but from a programming point of view, unless you are working with something that requires extreme performance, it is best to use the one that is most convenient.
In C, when it makes sense, it is useful for example to use struct for more complex data rather than just putting it from just using an array with vectors. A struct, for example, can store information as the last data accessed from a list of an array (or bound list), and though it may not be as efficient as using pure data, it can be extremely efficient when the amount of data is bigger, because you would already have curled the data, instead of having to sweep the whole list looking for the data that wanted.
Okay, you want to know which one is faster?
Well, in doubt, it tends to be faster given that it occupies less data in memory, or a data that can be operated by bitwise type operations. Even in this case, it's not just the data that matters, but the way the data is going to be used.