I'm struggling with a piece of code and getting the error:
Too many characters in character literal error
Using C# and switch statement to iterate through a string buffer and reading tokens, but getting the error in this line:
case '&&':
case '||':
case '==':
How can I keep the ==
and &&
as a char?
I believe you can do this using a Unicode encoding, but I doubt this is what you really want.
The
==
is the unicode value 2A76 so I belive you can do this:I can't test this at the moment but I'd be interested to know if that works for you.
You will need to dig around for the others. Here is a unicode table if you want to look:
http://www.tamasoft.co.jp/en/general-info/unicode.html
A char can hold a single character only, a character literal is a single character in single quote, i.e.
'&'
- if you have more characters than one you want to use a string, for that you have to use double quotes:Here's an example:
Chars are delimited by single quotes, and strings by double quotes.
The good news is C# switch statements work with strings!
This is because, in C#, single quotes (
''
) denote (or encapsulate) a single character, whereas double quotes (""
) are used for a string of characters. For example:You cannot treat
==
or||
as chars, since they are not chars, but a sequence of chars.You could make your switch...case work on strings instead.