char ch[50];
std::cout << "Enter a character: ";
std::cin.getline(ch, sizeof(ch));
char ch[50]
- это "массив символов" , иначе известный как "строка"
if (ch[50] == cha[50]) { ... }
Оба ch
и ch50
имеют 50 элементов. Индекс начинается с нуля, это означает, что последний действительный элемент - ch[49]
. ch[50]
переполнение буфера и вызывает неопределенное поведение.
Вместо этого вы хотите объявить один символ char ch;
и прочитать его. Или объявите ch[50]
, прочитайте строку и выполните сравнение для ch[0]
(это первый элемент в индексе)
int main()
{
char ch;
char cha;
std::cout << "Enter one character: ";
std::cin >> ch;
std::cout << "ASCII Value of " << ch << " is " << int(ch) << std::endl;
std::cout << "Enter a character: ";
std::cin >> cha;
std::cout << "ASCII Value of " << cha << " is " << int(cha) << std::endl;
if(ch == cha)
{
std::cout << "ASCII Value of " << cha << " is " << "equal to " << ch;
}
else
{
std::cout << ch << " is greater than " << cha << std::endl;
if(ch > cha)
std::cout << ch << " is greater than " << cha << std::endl;
else
std::cout << ch << " is less than " << cha;
}
return 0;
}