Compare between a char in a string to a given char

笑着哭i 提交于 2019-12-05 02:37:43

If str is a C string (null-terminated array of chars), then str[0] is a char.

Note that the type of quotes matters! ')' is a char, while ")" is a string (i.e. a ')' char followed by a null terminator).

So, you may compare two chars:

str[0] == ')'

or you may compare two strings

strcmp(str, ")") == 0

naturally, (the second works if str string really only contains that parenthesis).

You're comparing a character (str[0]) with a const char[N] ("whatever"). You need to use single quotes because double quotes denote character arrays, whereas single quotes denote single characters:

if (str[0] == ')') // or *str == ')'

Etc.

The reason why strcmp was failing as well was because, while the string at some time does point to the ), it has more characters beyond that (i.e. is not followed immediately by a '\0') so the string is not equivalent to the string ")" which has one character.

Double quotes, " are string delimiters, so ")" is a pointer to a string literal in if(str[0] == "("). You want to compare to a character, so you have to use single quotes

if(str[0] == '(')

You need if (str[0] == ')') etc. Note the single quotation marks (apostrophes) to denote character literals.

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!