| Микроконтролери и електроника http://mcu-bg.com/mcu_site/ |
|
| Въпрос за конвертиране в Ц http://mcu-bg.com/mcu_site/viewtopic.php?f=7&t=4163 |
Страница 1 от 2 |
| Автор: | Nekoj drug [ Вто Май 08, 2007 1:31 am ] | |||||||||
| Заглавие: | Въпрос за конвертиране в Ц | |||||||||
Проблема ми е следния: Въвеждам стринг от клавиатурата и искам да получа съответния ASCII код на всеки символ от низа. Да, обаче нещо не става. Ето отрязък от кода:
Опитах и с atol, и с atoll, компилира се, обаче стига до реда за конвертиране и нещо сепрецаква... Някой има ли идея как да се справя? |
||||||||||
| Автор: | Nekoj drug [ Вто Май 08, 2007 1:40 am ] |
| Заглавие: | |
Всъщност, сега като чета, ако разбирам и правилно, atoi() конвертира само символен запис на числа в число, а? Т.е. ще ми трябва друг метод...Някой да се сеща? |
|
| Автор: | Nekoj drug [ Вто Май 08, 2007 2:07 am ] | |||||||||
| Заглавие: | ||||||||||
Нещата не вървят на добре. Ако си говорех сам- иди-дойди. Ама аз вече сам си пиша Намерих начин да получа кода. Но пак бих се радвал на едно по-грамотно решение от моето:
|
||||||||||
| Автор: | Nikola Kirov [ Вто Май 08, 2007 2:33 am ] | ||||||||||||||||||
| Заглавие: | |||||||||||||||||||
Изобщо пишеш някакви глупости и искаш някой да ти отговаря
Какво мислиш че прави тази безмислица atoi([0]); ? защо ти е ASCII символите да ги пишеш в int? ako толкова държиш:
|
|||||||||||||||||||
| Автор: | Nekoj drug [ Вто Май 08, 2007 2:49 am ] |
| Заглавие: | |
изпуснал съм едно а: c[0]=atoi(a[0]) Но си прав. Като цяло въпроса ми не беше от най-умните Аз направих същото като теб, само че в отделна функция. Защо да е просто, като може да е сложно Мерси! |
|
| Автор: | zaphod [ Вто Май 08, 2007 8:15 am ] |
| Заглавие: | |
абе човек, да не мислиш че тип чар е някаква малка буквичка, която мравчиците в процесора пишат на листче? чаровете са 8 битови интове, това е. така че няма какво да получаваш кода на символ - символа е кода си. |
|
| Автор: | bobyk [ Вто Май 08, 2007 9:11 am ] |
| Заглавие: | |
И какъв е смисъла да преливаш от пусто в празно, глупава е самата идея не само реализацията. Не виждам никакъв смисъл |
|
| Автор: | Nekoj drug [ Вто Май 08, 2007 9:15 am ] |
| Заглавие: | |
Трябва ми за един проект в университета. Програмата трябва да работи и с букви на кирилица, като стринга трябва да има съответния вид(определена поредица букви и цифри).Аз самия доста се обърках, затова и писах тук... Не бъдете зли! |
|
| Автор: | Balkana [ Вто Май 08, 2007 10:00 pm ] |
| Заглавие: | |
| Автор: | zaphod [ Вто Май 08, 2007 11:08 pm ] | |||||||||
| Заглавие: | ||||||||||
може би имат предвид да изкараш текстов низ със числа, нещо от рода на 0х48,0х5е,0х20.... |
||||||||||
| Автор: | Nekoj drug [ Чет Май 10, 2007 10:43 am ] | |||||||||
| Заглавие: | ||||||||||
Ами не. Задачата ми е да напиша програма за обработка на данните на фирми, като има изискване регистрационния номер да съдържа кирилски букви и цифри в определена последователност. И понеже(това знам от асистента) не сме можели да знаем с каква кодова таблица работи съответния ДОС, трябва да обработваме символите като числа(long). Аз обаче изпробвам с латински букви, т.к. не мога да пиша на кирилица от командния ред на виндоуса. |
||||||||||
| Автор: | Nikola Kirov [ Чет Май 10, 2007 12:15 pm ] |
| Заглавие: | |
gets() ти връща низ от char което ще рече че е нормална ASCII кодировка 8 бита. Трябва да ползваш вероятно друга команда за вход за WCHAR вход. Но аз не съм ползвал при дос подобни неща и нямам идея как стоят нещата. Но след като функцията с която си четеш входа връща 8 битов низ няма смисъл да го преобразуваш в WCHAR. WCHAR е unsigned int а не long както казваш. |
|
| Автор: | zaphod [ Чет Май 10, 2007 1:58 pm ] | ||||||||||||||||||
| Заглавие: | |||||||||||||||||||
ами точно обратното - понеже не знаеш кодовата таблица НЕ трябва да обработваш символите като числа. например ако искаш да разбереш дали даден символ е цифра, не трябва да го сравняваш с 48-57, а с '0'-'9'. if(c>='0'&&c<='9')... това е проверка дали даден символ е цифра. |
|||||||||||||||||||
| Автор: | Nekoj drug [ Чет Май 10, 2007 9:24 pm ] | ||||||||||||||||||
| Заглавие: | |||||||||||||||||||
|
|||||||||||||||||||
| Автор: | zaphod [ Чет Май 10, 2007 10:04 pm ] |
| Заглавие: | |
на кво пишете? под виндовс си има там едни макроси и типове, които целят инвариантност при смяна на кодовата таблицат. например низовете се слагат в _Т(), а символа има тип TCHAR, като тези неща с разни ифдефове се дефинират различно според това дали има дефинирано _UNICODE и _MBCS. |
|
| Страница 1 от 2 | Часовете са според зоната UTC + 2 часа [ DST ] |
| Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |
|