1 / 0 / 0
Регистрация: 30.06.2015
Сообщений: 46
|
||||||
1 | ||||||
Раскройте глаза начинающему прогеру (в расшифке кода)30.06.2015, 20:14. Показов 971. Ответов 20
Метки нет (Все метки)
Дана задача://Удалить из строки символов(char)пробел в начале строки&есть решение
0
|
30.06.2015, 20:14 | |
Ответы с готовыми решениями:
20
Стоит ли начинающему прогеру учить Паскаль в 2017? Подскажите начинающему, что означает эта часть кода Раскройте скобки и приведите подобные выражения Раскройте алгоритм нахождения среднего арифметического элементов одномерного массива |
Диссидент
27706 / 17322 / 3812
Регистрация: 24.12.2010
Сообщений: 38,979
|
|
30.06.2015, 20:35 | 2 |
foxsc, Действительно странный код. Длина строки тут не при чем. В while(stroka == n) сравнивает указатель на строку с целым числом. Чисто случайно он может быть равным 32, но это большая редкость, и цикл тогда будет бесконечным с разрушением не принадлежащей программе памяти. Можно считать, что условие ложно и цикл не выполняется. Но строка выводится (как была)
Может быть там while(stroka[i]==n) Тогда все логично. ЗЫ. 32 - код пробела.
1
|
1 / 0 / 0
Регистрация: 30.06.2015
Сообщений: 46
|
|
30.06.2015, 20:42 [ТС] | 3 |
Вы правы там именно while (stroka[i]==n),моя косяк не скопировал.Однако я все равно не понимаю как он может работать.Обьясните пожалуйста
0
|
1 / 0 / 0
Регистрация: 30.06.2015
Сообщений: 46
|
|
30.06.2015, 21:01 [ТС] | 5 |
Окей,доперло.Спасибоа как код символа пробела может быть реализован через значение int,ведь тогда получается что 32 это обычное число
0
|
1 / 0 / 0
Регистрация: 30.06.2015
Сообщений: 46
|
|
30.06.2015, 21:28 [ТС] | 9 |
Если честно для меня это тоже загадка,но это не моя строка,это решение указанное в ответе .Сайт:http://kvodo.ru/simvolyi-i-stroki-zadacha-7.html
Добавлено через 6 минут Напечатал :"+"+".Меня интересует почему код из таблицы описан как обычное целочисленное значение как компилятор отличает цифру "32" от кода таблицы ?
0
|
1 / 0 / 0
Регистрация: 30.06.2015
Сообщений: 46
|
|
30.06.2015, 21:40 [ТС] | 11 |
а это на что то влияет?я пробывал удалять void,но ничего не меняется...
0
|
20 / 13 / 9
Регистрация: 05.12.2014
Сообщений: 124
|
|
30.06.2015, 21:43 | 12 |
foxsc, ok. В общем тебе надо выводить символ - бери его в ковычки. Чар и цифры без Ковычек- код символа.
0
|
1 / 0 / 0
Регистрация: 30.06.2015
Сообщений: 46
|
|
30.06.2015, 21:49 [ТС] | 14 |
я самоучка,учусь по всему что попадется в том числе и по ютубу
0
|
1 / 0 / 0
Регистрация: 30.06.2015
Сообщений: 46
|
|
30.06.2015, 21:57 [ТС] | 16 |
Буду благодарен если вы мне посоветуете какой нибудь ресурс
Добавлено через 2 минуты Если я вас правильно понял.То тут преобразование типов ,т.к как char сравнивается с int
0
|
30.06.2015, 21:57 | 17 |
Не обижайся, но я не хочу лишний раз объяснять что это и с чем его едят. Если есть желание - можешь поискать в моих последних сообщениях (~ недельной давности).
Пожалуй следует сделать запись в блоге, и давать на неё ссылку в подобных случаях. Какой-нибудь ресурс для чего?
0
|
1 / 0 / 0
Регистрация: 30.06.2015
Сообщений: 46
|
|
30.06.2015, 21:59 [ТС] | 18 |
Cпасибо посмотрю
0
|
19 / 19 / 6
Регистрация: 21.06.2015
Сообщений: 34
|
|||||||||||
30.06.2015, 22:09 | 19 | ||||||||||
Фишка в том, что компилятору все равно (это реально так).
Для него строка символов - это массив чисел. char - это целое число от -128 до 127. Компилятору не нужно это отличать. Просто функции типа print при определенных аргументах выведут тебе число как символ, а при других - как число. Запусти вот это:
Смотреть на это нужно так: оперативная память приложения - это весьма большой массив чисел (байт, они же char). Когда ты делаешь print(х) - он тупо смотрит в указанную область памяти по адресу "х", если ты делаешь print("%s", 50) - он начнет печатать данные выводя их как строку начиная с адреса 50. Там может лежать что угодно,память может быть вообще не выделена - ему все равно, он будет выводить эти данные как если бы это была строка. В частности от этого прога может упасть (если эта область памяти не зарезервирована). Добавлено через 2 минуты Кстати, я напортачил в коде выше, лучше во так написать (как было раньше скорее всего приведет к Access violation at address ...);
0
|
1 / 0 / 0
Регистрация: 30.06.2015
Сообщений: 46
|
|
30.06.2015, 22:12 [ТС] | 20 |
Теперь окончательно доперло))Всем огромное спасибо за уделенное время&терпение))P/S(дабы втолдычить в мой пока еще не лишенный девственности програмиский мозг эту информацию)
0
|
30.06.2015, 22:12 | |
30.06.2015, 22:12 | |
Помогаю со студенческими работами здесь
20
Бесплатно делюсь опытом, как прогеру поднять свой доход Глаза за компьютером Красные глаза Красные глаза Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |