Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
foxsc
1 / 0 / 0
Регистрация: 30.06.2015
Сообщений: 46
#1

Раскройте глаза начинающему прогеру (в расшифке кода) - C++

30.06.2015, 20:14. Просмотров 513. Ответов 20
Метки нет (Все метки)

Дана задача://Удалить из строки символов(char)пробел в начале строки&есть решение
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
using namespace std;
int main()
{setlocale(LC_ALL,"Rus");
char stroka[255]; int i=0, n=32;
cout<<" Введите строку >> \t \n";
cin.getline(stroka, 255);
[B][I]while (stroka[i]==n)[/I][/B]
{//8-ASCII код возврата на шаг
stroka[i]=8;
i++;
}
cout<<endl<<stroka;
system("pause>>void");
return 0;
}
Мне не понятно как может тут выполняться цикл?если условие изначально ложное.Ведь n=32,а массив может состоять и не из 32 символов,а меньше.Всем заранее огромное спасибо P.S программа работает даже если введен только один символ
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.06.2015, 20:14
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Раскройте глаза начинающему прогеру (в расшифке кода) (C++):

Стоит ли начинающему прогеру учить Паскаль в 2017? - Pascal
Привет всем! Я работаю верстальщиком уже 9 месяцев, могу писать простой JS. Но люблю основательный подход, поэтому в свободное время...

Подскажите начинающему, что означает эта часть кода - Java SE
Здравствуйте. Учу джаву потихоньку. Делаю задание, и не пойму в этой части кода, что означает int age, и зачем мы присваиваем ей в...

Раскройте скобки и приведите подобные выражения - MathCAD
Раскройте скобки и приведите подобные выражения x{(z+2)}^{2}-4*z(x+2*z)

Раскройте алгоритм нахождения среднего арифметического элементов одномерного массива - Pascal ABC
Раскройте алгоритм нахождения среднего арифметического элементов одномерного массива: всех элементов; элементов, удовлетворяющих заданному...

Глаза и монитор - Мониторы
Купил монитор Benq BL702A,не знаю что с ним не так,настроил его по всем инструкциям,со специальными тестами в TFT test например,установил...

Мозолит глаза - Windows 7
После очередной чистки реестора программой Reg Organizer, при каждом запуске windows вылазит окошко Как его убрать?)

20
Байт
Эксперт C
17712 / 11733 / 1870
Регистрация: 24.12.2010
Сообщений: 23,523
30.06.2015, 20:35 #2
foxsc, Действительно странный код. Длина строки тут не при чем. В while(stroka == n) сравнивает указатель на строку с целым числом. Чисто случайно он может быть равным 32, но это большая редкость, и цикл тогда будет бесконечным с разрушением не принадлежащей программе памяти. Можно считать, что условие ложно и цикл не выполняется. Но строка выводится (как была)
Может быть там while(stroka[i]==n) Тогда все логично.
ЗЫ. 32 - код пробела.
1
foxsc
1 / 0 / 0
Регистрация: 30.06.2015
Сообщений: 46
30.06.2015, 20:42  [ТС] #3
Вы правы там именно while (stroka[i]==n),моя косяк не скопировал.Однако я все равно не понимаю как он может работать.Обьясните пожалуйста
0
Байт
Эксперт C
17712 / 11733 / 1870
Регистрация: 24.12.2010
Сообщений: 23,523
30.06.2015, 20:58 #4
Цитата Сообщение от foxsc Посмотреть сообщение
я все равно не понимаю как он может работать.
А чего там не понимать-то? Пока символ в строке равен пробелу (32) заменяем его BackSpace (8). Вот эквивалентный код
C++
1
2
for(i=0;  stroka[i]==32; i++)
  stroka[i] = 8;
0
foxsc
1 / 0 / 0
Регистрация: 30.06.2015
Сообщений: 46
30.06.2015, 21:01  [ТС] #5
Окей,доперло.Спасибоа как код символа пробела может быть реализован через значение int,ведь тогда получается что 32 это обычное число
Цитата Сообщение от foxsc Посмотреть сообщение
int i=0, n=32;
0
castaway
Эксперт С++
4926 / 3033 / 372
Регистрация: 10.11.2010
Сообщений: 11,084
Записей в блоге: 10
Завершенные тесты: 1
30.06.2015, 21:08 #6
foxsc, скажи по секрету, на чьих уроках ты учился? Из ютуба?
0
Байт
Эксперт C
17712 / 11733 / 1870
Регистрация: 24.12.2010
Сообщений: 23,523
30.06.2015, 21:10 #7
Цитата Сообщение от foxsc Посмотреть сообщение
а как код символа пробела может быть реализован через значение int,ведь тогда получается что 32 это обычное число
Попробуй напечатай
C++
1
printf("%c%c%c\n", 43, 32, 43);
43 - код + (плюса)
1
castaway
Эксперт С++
4926 / 3033 / 372
Регистрация: 10.11.2010
Сообщений: 11,084
Записей в блоге: 10
Завершенные тесты: 1
30.06.2015, 21:17 #8
Цитата Сообщение от castaway Посмотреть сообщение
foxsc, скажи по секрету, на чьих уроках ты учился? Из ютуба?
Я не просто так спрашиваю, меня интересует происхождение следующей конструкции:
C++
1
system("pause>>void");
0
foxsc
1 / 0 / 0
Регистрация: 30.06.2015
Сообщений: 46
30.06.2015, 21:28  [ТС] #9
Если честно для меня это тоже загадка,но это не моя строка,это решение указанное в ответе .Сайт:http://kvodo.ru/simvolyi-i-stroki-zadacha-7.html

Добавлено через 6 минут
Напечатал :"+"+".Меня интересует почему код из таблицы описан как обычное целочисленное значение
Цитата Сообщение от foxsc Посмотреть сообщение
int i=0, n=32;
как компилятор отличает цифру "32" от кода таблицы ?
0
Croessmah
Ушел
13775 / 8025 / 925
Регистрация: 27.09.2012
Сообщений: 19,768
Записей в блоге: 3
Завершенные тесты: 1
30.06.2015, 21:37 #10
castaway, а посмотри по форуму, тут много таких. pause>>void, pause>>NULL
0
foxsc
1 / 0 / 0
Регистрация: 30.06.2015
Сообщений: 46
30.06.2015, 21:40  [ТС] #11
а это на что то влияет?я пробывал удалять void,но ничего не меняется...
0
4ewka
4 / 4 / 1
Регистрация: 05.12.2014
Сообщений: 100
30.06.2015, 21:43 #12
foxsc, ok. В общем тебе надо выводить символ - бери его в ковычки. Чар и цифры без Ковычек- код символа.
0
Croessmah
Ушел
13775 / 8025 / 925
Регистрация: 27.09.2012
Сообщений: 19,768
Записей в блоге: 3
Завершенные тесты: 1
30.06.2015, 21:43 #13
foxsc, ну посмотрите в рабочий каталог и обнаружите файл с именем void
0
foxsc
1 / 0 / 0
Регистрация: 30.06.2015
Сообщений: 46
30.06.2015, 21:49  [ТС] #14
я самоучка,учусь по всему что попадется в том числе и по ютубу
0
castaway
Эксперт С++
4926 / 3033 / 372
Регистрация: 10.11.2010
Сообщений: 11,084
Записей в блоге: 10
Завершенные тесты: 1
30.06.2015, 21:51 #15
Цитата Сообщение от Croessmah Посмотреть сообщение
castaway, а посмотри по форуму, тут много таких. pause>>void, pause>>NULL
В этом то и проблема, это пандемия у новичков.
0
30.06.2015, 21:51
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.06.2015, 21:51
Привет! Вот еще темы с ответами:

Анимировать глаза у кота - PascalABC.NET
помогите с анимацией,пожалуйста.срочно! вот рисунок Program simonscat; uses GraphABC; begin setwindowsize(800,600); ...

Открыть глаза на фото - Photoshop
Нужно открыть глаза на фото.Помогите пожалуйста!

Жжет глаза от монитора - Мониторы
Здравствуйте, обращаюсь к вам за помощью с монитором LG 22MP58VQ-P. IPS матрица, LED подсветка, Шим проверял карандашом, на всех уровнях...

Моргающие глаза. Не флэш - Web
Есть ли какой нить способ оживить картинку - чтобы у чувака глаза моргали? но не флэшем и не гифом? Спасибо за ответы.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru