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

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

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

Написать программу, которая будет зеркально выводить введенную строку - C++

27.05.2014, 03:03. Просмотров 465. Ответов 7
Метки нет (Все метки)

Доброго времени суток!
Стоит задача: написать программу, которая будет зеркально выводить введенную строку.
Условие: нельзя использовать стандартные функции библиотеки <cstring> и им подобные
ОС: windows 7, x64
Компилятор: Dev-C++

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# include <iostream>
# include <stdlib.h>
# include <conio.h>
 
 
using namespace std;
 
int main()
 
{
int i, j, k=0;
const int n=100;
char arr[n], mir[n];
 
cout<< "enter string: ";
 
gets(arr);
 
for(i=0; i< n ;i++) if(arr[i] ) k++;
 
cout<< endl << "mirror of your string is: ";
for( i=k, j=0; i>-1; i--, j++ ) 
         mir[j] = arr[i];
 
cout<< mir;
 
 
return 0;
    
}
Добавлено через 26 минут
добавлю комментарии:
C++
1
2
3
4
for(i=0; i< n ;i++) if(arr[i] ) k++;// length of string
 
cout<< endl << "mirror of your string is: ";
for( i=k, j=0; i>-1; i--, j++ ) // content of the last index of arr copy to the content of the first index mir, and so on till the arr[0]
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.05.2014, 03:03
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Написать программу, которая будет зеркально выводить введенную строку (C++):

Написать программу, которая будет добавлять в текстовый файл введенную из клавиатуры информацию - C++
Написать программу, которая будет добавлять в текстовый файл введенную из клавиатуры информацию. Следует предусмотреть возможность выбора...

Написать программу, которая будет выводить елочку из символов - C++
Нужно написать программу которая будет выводить елочку из символов ^ ^ ^^^ ^^^^^ по заданной пользователем высотой. ...

Написать программу, которая будет выводить результат поиска с сайта - C++
Нужно написать программу, которая будет отправлять поисковой запрос на сайт nigma.ru, и выводить картинку с результатом. Пожалуйста!...

Написать программу, которая будет генерировать одномерный массив и выводить сумму элементов - C++
Необходимо написать программу которая будет генерировать одномерный массив и выводит сумму елементов. Значения генерируются в пределах от...

Написать программу, которая будет выводить значения АЧХ и ФЧХ по заданным параметрам - C++
Здравствуйте помогите пожалуйста написать программу которая будет выводить значения АЧХ и ФЧХ по заданным параметрам R (сопротивления)...

Написать программу, которая будет добавлять в текстовый файл введенную с клавиатуры информацию.З клавиатуры вводится имя компании, год основания - C++
Help

7
slayster
5 / 5 / 1
Регистрация: 25.03.2014
Сообщений: 20
27.05.2014, 03:04 #2
в чем заключается вопрос?
0
karzuan
1 / 1 / 0
Регистрация: 06.05.2013
Сообщений: 16
27.05.2014, 03:18  [ТС] #3
Цитата Сообщение от slayster Посмотреть сообщение
в чем заключается вопрос?
программа не работает должным образом
0
slayster
5 / 5 / 1
Регистрация: 25.03.2014
Сообщений: 20
27.05.2014, 03:26 #4
что-то подобное?
C++
1
2
3
4
5
6
7
8
9
10
11
12
    char buf[100];
    int i = 0;
 
    gets(buf);
 
    while (buf[i])
        i++;
 
    for (int j = i - 1; j >= 0; j--)
        cout << buf[j];
 
    cout << endl;
0
karzuan
1 / 1 / 0
Регистрация: 06.05.2013
Сообщений: 16
27.05.2014, 03:40  [ТС] #5
Цитата Сообщение от slayster Посмотреть сообщение
что-то подобное?
именно, но мне интересно почему мой код не работает.

И кстати, почему в твоём выводится последний символ
C++
1
for (int j = i - 1; j >= 0; j--)
получается, что '\0' тоже учитывается? Тогда мне не понятно почему цикл счёта символов
C++
1
2
while (buf[i])
        i++;
останавливается на нуле после нуля
0
slayster
5 / 5 / 1
Регистрация: 25.03.2014
Сообщений: 20
27.05.2014, 03:49 #6
Цитата Сообщение от karzuan Посмотреть сообщение
И кстати, почему в твоём выводится последний символ Код
C++
1
for (int j = i - 1; j >= 0; j--)
в i количество символов + '\0', который стоит последним. int j = i-1, последний элемент пропускается.

Добавлено через 1 минуту
Цитата Сообщение от karzuan Посмотреть сообщение
получается, что '\0' тоже учитывается? Тогда мне не понятно почему цикл счёта символов
C++
1
2
while (buf[i])
i++;
'\0' не учитывается.
0
karzuan
1 / 1 / 0
Регистрация: 06.05.2013
Сообщений: 16
27.05.2014, 03:58  [ТС] #7
добавил выход из цикла вычисления длины строки и уменьшил величину последнего символа на один ( похоже действительно указывает на нулевой символ )
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
int main()
 
{
int i, j, k=0;
const int n=100;
char arr[n], mir[n], ch;
 
cout<< "enter string: ";
 
gets(arr);
 
for(i=0; i< n ;i++) if(arr[i] ) k++;// length of string
else break;//out of cycle
cout<< endl << "mirror of your string is: ";
for( i=k-1, j=0; i>-1; i--, j++ ) // content of the last index of arr copy to the content of the first index mir, and so on till the arr[0]
         mir[j] = arr[i];
 
cout<< mir;
 
return 0;
    
}
непонятно, если счетчик длины массива считает трушные значения, почему символ конца строки тоже считается за тру, если он ноль.

Добавлено через 4 минуты
Цитата Сообщение от slayster Посмотреть сообщение
'\0' не учитывается.
в таком случае зачем вычитать единицу.
0
slayster
5 / 5 / 1
Регистрация: 25.03.2014
Сообщений: 20
27.05.2014, 04:08 #8
Цитата Сообщение от karzuan Посмотреть сообщение
в таком случае зачем вычитать единицу.
элементы массива начинаются с нуля... Вводим 1 символ, получаем в массив {'1', '\0'}; следовательно у нас 2 элемента с индексами 0 и 1
C++
1
for (int j = i - 1; j >= 0; j--)
получаем
C++
1
for (int j = 1 -1; j>=0; j--);
если не устраивает, можно исправить на while (buf[i]!='\0')
для наглядности
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.05.2014, 04:08
Привет! Вот еще темы с ответами:

Написать программу, которая будет определять цвет пикселя под курсором и выводить на экран этот цвет - C++
Хочу написать программу, кот. будет определять цвет пикселя под курсором и выводить на экран этот цвет словом или кодом или как лучше?...

Написать программу, разбивающую введенную строку - C++
Доброе утро, нужна срочно ваша помощь, нужно сделать простенькое консольное приложение. Ввод большой строки - запись в файл - разбиение...

Создать программу которая будет выводить каждое 4 слово - C++
Считывание текста с файла. Язык С++ или С.

Создать программу, которая будет определять с какой буквы вы ввели слово с А, с Б или с В и выводить об этом сообщение - C++
Ребят, нужна помощь. С++ Создать программу, которая будет определять с какой буквы вы ввели слово с А, с Б или с В и выводить об этом...


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

Или воспользуйтесь поиском по форуму:
8
Yandex
Объявления
27.05.2014, 04:08
Ответ Создать тему
Опции темы

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