PDA

Показать полную графическую версию : Прошу прокомментировать


Чин Хон
17-02-2011, 09:47
#include <stdio.h>
#include <conio.h>
void main()
{
unsigned char st[80]; // строка текста
int i; // номер обрабатываемого символа

printf("\nVvedite stroku teksta i najmite <Enter>");
printf("->");
gets(st);
i = 0;
while ( st[i] )
{
if ((st[i] >= 'a' && st[i] <= 'z') ||
(st[i] >= 'а' && st[i] <= 'п'))
st[i] -= 32;
else if (st[i] >= 'р' && st[i] <= 'я')
st[i] -= 80;
i++;
}
printf("\n%s\n", st);

printf("\nDlya zaversheniya najmite <Enter>");
getch();
}
Мне не понятно с "while" до "printf("\n%s\n", st)". Кто-нибудь объясните пожалуйста

Чин Хон
17-02-2011, 09:59
Преобразование прописных букв в строчные только латинского алфавита! Там у меня есть русские буквы, но прога почему-то работает

Busla
17-02-2011, 13:14
Почему же только латинских, если "чёрным по русскому" указаны диапазоны кириллических символов?!

Чин Хон
17-02-2011, 14:35
где это указано?О.о

Beyound
17-02-2011, 17:35
(st[i] >= 'a' && st[i] <= 'z') ||
(st[i] >= 'а' && st[i] <= 'п')
if (st[i] >= 'р' && st[i] <= 'я')

вот в этих строках все указано. любая буква - это всеголишь номер в аски коде и с ним можно делать теже операции что и с числом int, другое дело что диапазон сильно укорочен, смотри таблицу аски кодов




© OSzone.net 2001-2012