Премини към съдържанието
Xagec

Елементарна задача

Препоръчан отговор


Здравейте,трябва да направя програмка на С която да прави следното: " Програма на С, която да чете текстов файл, която да извежда на екрана броя на главните латински букви в него." Преди това трябваше да направя която да проверява файл за "удивителни, запетаи и въпросителни, и да ги брои" и ясно че принципа ще е същия,но как компютрите правеха разлика между малка и голяма буква? и примерно за да си сложа и проверка да проверява дали текста е на латиница или не , как различават и това?

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

Това да ти е проблема. Ако си правил за символи, значи няма да имаш проблеми. От гледна точка на Си програмата 'A' и 'а' е същата както между 'А' и ','. Най-лесния начин - (ако е ASCII файла) е да използваш това че в Си char е число и че главните латински букви са поредни в ASCII таблицата. Само проверяваш дали поредния символ е в областта. т.е. :

int isLatinCapLetter (char let)

 
{
    return((let>='A') && (let<='Z'));
}
Това ще върне 0 ако символа не е главна латинска буква.
  • Харесва ми 1

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

Еми уж това ми е проблема , значи по твоя пример проверяваме за големи латински , предполагам че щом големите букви са поредни , същото е и за малките , ще сложа още един if да проверява и за малките и да вдига примерно друг брояч , че накрая да изкарва и броя на големите и малките , а как ще се проверява дали е на латиница? Като почна да я правя сигурно ще срещна и други проблеми, но сега трябва да излизам , та утре ще докладвам. ;)

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

значи по твоя пример проверяваме за големи латински

а как ще се проверява дали е на латиница?

Мисля, че горното отговаря на долното.

, предполагам че щом големите букви са поредни , същото е и за малките

Ми и аз така предполагам :rolleyes:
  • Харесва ми 1

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

, а как ще се проверява дали е на латиница?

е пропуснал си есенцията :nono:

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

е пропуснал си есенцията :nono:

Е не съм. щом функцията ми намира главни латински букви значи намира латински букви. Затова казах, че ти сам си отговаряш на въпроса. Не ти трябва нищо друго за да изпълниш условието на задачата, така като е поставена.

Ако питаш как да определиш, дали символ е каква да е латинска буква, това е друго нещо...

int isAnyLatinLetter (char let)
{
    return(((let>='A') && (let<='Z')) || ((let>='a')&&(let<='z')) );
}
BTW, това са съвсем елементарни неща и е хубаво да помислиш преди да питаш. Особено ако искаш да научиш нещо.
  • Харесва ми 1

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

@flare, има готови функции за тази работи:

isupper() - проверява дали ASCII символ е главна латинска буква.

isappha() - проверява дали ASCII символ е латинска буква.

Въпреки, че не е лошо, че си показал как се имплементират!

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

@flare, има готови функции за тази работи:

isupper() - проверява дали ASCII символ е главна латинска буква.

isappha() - проверява дали ASCII символ е латинска буква.

Въпреки, че не е лошо, че си показал как се имплементират!

Това ми е известно. Просто реших, че щом е задача вероятно ще искат да си ги направиш сам...

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

Регистрирайте се или влезете в профила си за да коментирате

Трябва да имате регистрация за да може да коментирате това

Регистрирайте се

Създайте нова регистрация в нашия форум. Лесно е!

Нова регистрация

Вход

Имате регистрация? Влезте от тук.

Вход

×

Информация

Поставихме бисквитки на устройството ви за най-добро потребителско изживяване. Можете да промените настройките си за бисквитки, или в противен случай приемаме, че сте съгласни с нашите условия за ползване.