Loading...
Alex0101 avatar Alex0101 374 Точки

[C++]- Кастване на char към int

Здравейте искам да попитам за мнение. 

Като се forech string, всяка итерация дава по един char. 

Нужно ли е за да се провери на кой asci код отговаря символа да се каства към int.

По-долу съм показал и двата варианта. И двата работят, въпросът е при cpp как е по - ок да се прави това.

 

for each (char eachChar in input)
	{
		if ((int)eachChar >= 65 && (int)eachChar <= 95)
		{
			//some code here
		}
    }
for each (char eachChar in input)
	{
		if (eachChar >= 65 && eachChar <= 95)
		{
			//some code here
		}
    }

 

Тагове:
1
C++ Programming
mihayloff14 avatar mihayloff14 824 Точки
Best Answer

Няма огромна разлика. Освен това, може директно да сравняваш char със char. По този начин и кодът става по четим:

for each (char eachChar in input)
{
    if (eachChar >= 'A' && eachChar <= 'Z')
    {
          //some code here
    }
}

 

6
01/06/2016 10:14:25
Alex0101 avatar Alex0101 374 Точки

Мерси Преслав!

1
digital_wizard avatar digital_wizard -3 Точки

Няма нужда от кастване тъй като всеки един (е, почти всеки wink  ) символ представлява един ASCII код.

0
netherblood avatar netherblood 95 Точки

"По-ок" ще е без да го кастваш, понеже char в c++ си е директно число. Там не съществува byte, а само char, който е еквивалентен.

0
iliev72 avatar iliev72 147 Точки

не е ли по лесно да извадиш 65 и да провериш дали е положителен отговора ;)

0
Alex0101 avatar Alex0101 374 Точки

Тук въпросът беше за съвсем друго нещо, а именно как би следвало да е специално за с++. Начини да се реши, колкото искаш. В конкретната задача трябваше да се разделят определение символи и ако вадиш проста -65 няма как да разбереш дали символът е Ъпер кейс , защото те приключват на 90, но започват други символи, които трябва да спаднат къмброяч"други". Също така, няма как да разбереш дали не е малка буква. 

Както и да е, мисля че я изчерпахме темата. Благодаря на всички за мнението.

1
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.