Вылетает после ввода символа [закрыт]

78
03 марта 2021, 06:30
Закрыт. Этот вопрос не по теме. Ответы на него в данный момент не принимаются.

Хотите улучшить этот вопрос? Обновите вопрос так, чтобы он вписывался в тематику Stack Overflow на русском.

Закрыт 1 год назад.

Улучшить вопрос
#include<stdio.h>
#include<iostream.h>
#include<string.h>
#include<stdlib.h>
int main()
{
char someChar;
char someText[] = "Passport";
puts(someText);
printf("\n Введите символ: ");
scanf("%c", &someChar);
int lenght = sizeof(someText)/sizeof(someText[0]);
int count = 0;
for(int i = 1; i<lenght; i++)
{
if (someText[i] > someChar) count++;
}
printf("\n Символы, которые больше %c: %i", someChar, count);
return 0;
}

Программа для подсчета символов больше заданного в строке, собственно программа закрывается без каких-либо ошибок сразу после ввода символа и нажатия Enter. Собственно, вопрос: что не так?

Answer 1

в программе не поддерживается кириллица

Это сложный вопрос. Он распадается на три:

  1. Используемая кодировка
  2. Поддержка кириллицы в рамках ОС
  3. Поддержка кириллицы в Вашей программе.

Если Вы работаете под Windows, то (скорее всего) кодировка по умолчанию cp1251. Тогда надо в начале программы прописать

Setlocale(LC_ALL, "ru-RU");

(Русский язык в консоли) И всё будет работать, за исключением того, что само понятие "символ, который больше" станет довольно туманным.

Если вы работает в Linux (где кодировка по умолчанию UTF-8), то с отображение символов кириллицы никаких проблем не будет, вот только вся логика Вашей программы накрывается медным тазом. Это происходи потому, что в UTF-8 один (!!!) символ может занимать один байт, два байта... Поэтому Ваша метода расчёт длины строки и сравнения символов на больше/меньше становится неприменимой.

READ ALSO
разница между dllexport и dllimport

разница между dllexport и dllimport

при создании dll файла, нужно указывать

81
Минимальное расстояние в графе

Минимальное расстояние в графе

Дано связный невзвешенный граф с N вершинами N-1 ребромИ также подграф етого графа P

115
Сортировка пузырьком на С++

Сортировка пузырьком на С++

Есть задача: отсортировать пузырьковым методом массивЕсть код

127
Итерацию по вектору объектов

Итерацию по вектору объектов

QtCreator, cmakeНе даёт проитерироваться по вектору объектов и передать их в функцию

96