Хотите улучшить этот вопрос? Обновите вопрос так, чтобы он вписывался в тематику 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. Собственно, вопрос: что не так?
в программе не поддерживается кириллица
Это сложный вопрос. Он распадается на три:
Если Вы работаете под Windows, то (скорее всего) кодировка по умолчанию cp1251. Тогда надо в начале программы прописать
Setlocale(LC_ALL, "ru-RU");
(Русский язык в консоли) И всё будет работать, за исключением того, что само понятие "символ, который больше" станет довольно туманным.
Если вы работает в Linux (где кодировка по умолчанию UTF-8), то с отображение символов кириллицы никаких проблем не будет, вот только вся логика Вашей программы накрывается медным тазом. Это происходи потому, что в UTF-8 один (!!!) символ может занимать один байт, два байта... Поэтому Ваша метода расчёт длины строки и сравнения символов на больше/меньше становится неприменимой.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Дано связный невзвешенный граф с N вершинами N-1 ребромИ также подграф етого графа P
QtCreator, cmakeНе даёт проитерироваться по вектору объектов и передать их в функцию