Позвольте мне объяснить вам, как работает программа.
Сначала переменная "letters" определяется как std::string
. Он инициализируется с пустой инициализированной скобкой по умолчанию и, следовательно, пуст.
Все varaible должны быть инициализированы во время определения.
Затем мы просим пользователя программы ввести тест строка, используя оператор вставки для записи текста в консоль (std :: cout).
Далее мы читаем полную строку от пользователя. Итак, все, что он печатает, пока не нажмет, вводит.
С помощью size_t num_letters = letters.length();
мы получаем количество символов, введенных пользователем. Включая пробелы, бит без окончания "\ n" (производится командой enter).
Длина строки важна для построения пирамиды. Положение переменной определяется и инициализируется 0. Это индикатор строки, над которой работает программа. Он будет увеличиваться на 1 в конце каждого запуска l oop (из диапазона, основанного на l oop).
Итак, он начинается с 0, а затем в следующем l oop это будет один, затем 2 и так далее. Поскольку l oop работает так же, как у нас есть буквы в данной строке, "position" будет равна длине строки.
OK, nect для for l oop. Для каждого символа в строке у нас будет один l oop пробег.
И теперь, наиболее важным для вас является следующая строка.
size_t num_spaces = num_letters - position;
Для строки "AB C "num_letters
всегда равно 3. position
для первого l oop 0, затем 1, а затем 2.
Итак, num_spaces
будет первым: 3, затем 2 и затем 1.
В то время как l oop напечатает num_spaces
пробелов в этой строке. В первом ряду будет напечатано 3 пробела, в следующем ряду 2, а затем 1 пробел.
И после этого он напишет правильное письмо.
С помощью этого механизма мы получим эффект памиды.
Следующий l oop будет печатать буквы из оригинальная строка. В первом l oop: Ничего, потому что j равно 0, а позиция - 0. В следующем l oop он напечатает затем A и затем B.
Следующий оператор напечатает текущий символ. Итак, сначала A, затем B, а затем C.
А затем все остальное будет напечатано в обратном порядке.
В конце мы получим новую строку, а затем переменную позицию увеличиваем, чтобы начать новую строку.
Надеюсь, это поможет -