Если буквы в строке упорядочены по алфавиту, то вывести 0 - C (СИ)
Формулировка задачи:
Дана строка, содержащая цифры и строчные латинские буквы. Если буквы в строке упорядочены по алфавиту, то вывести 0; в противном случае вывести номер первого символа строки, нарушающего алфавитный порядок.
Решение задачи: «Если буквы в строке упорядочены по алфавиту, то вывести 0»
textual
Листинг программы
#include <windows.h>
#include <stdio.h>
#include <conio.h>
int main()
{
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
char * stroka = new char[1000];
fgets(stroka, 1000, stdin);
int i = 0, kod = 97;
while (stroka[i] != '\0'){
if ((int)stroka[i] > 96 && (int)stroka[i] < 123){
if ((int)stroka[i] >= kod){
kod = (int)stroka[i];
}
else{
printf("%i", i + 1);
delete[] stroka;
_getch();
return 0;
}
}
i++;
}
printf("0");
delete[] stroka;
_getch();
return 0;
}
Объяснение кода листинга программы
В этом коде проверяется, упорядочены ли буквы в строке по алфавиту. Если да, то выводится 0. Вот список элементов кода:
- Подключение необходимых библиотек
- Установка кодировки консоли
- Выделение памяти под строку
- Чтение строки с клавиатуры
- Установка начального значения для переменной kod
- Проверка каждой буквы в строке
- Если буква больше kod и меньше 123, то обновляется значение kod
- Если буква меньше kod, то выводится номер буквы, удаляется память под строку, приостанавливается программа до нажатия клавиши и возвращается 0
- После проверки всех букв выводится 0
- Удаляется память под строку, приостанавливается программа до нажатия клавиши и возвращается 0