Python allows you to make that distinction too. While there's no char type like there is in C, python has the functions chr() and ord():
Code:
# Python
s = 'a'
first = s[0]
assert firstChar == s # In python a "char" is just a string
assert ord(firstChar) == 97
assert chr(97) == firstChar
Code:
/* C */
/* In C, strings end with an invisible null character.
Hence the size 2 rather than 1 */
const char s[2] = "a";
/* The first element of s is a char, which is not a string.
'a', not "a" */
char firstChar = s[0];
/* This comparison wouldn't mean what you think. */
/* assert(firstChar == s); */
/* 'a' and 97 mean the same thing in ASCII */
assert(firstChar == 97);
assert(firstChar == 'a');