2 / 2 / 2
Регистрация: 05.10.2011
Сообщений: 97
1

Вывести строку символов на экран задом наперед

19.12.2011, 23:06. Показов 21643. Ответов 14
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Дана строка символов. Вывести её на экран задом наперед. Использовать библиотеку string.h

Добавлено через 3 минуты
как я понимаю нужно узнать через strlen длину строки а потом сделать обратный цикл? как это делается не пойму....
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.12.2011, 23:06
Ответы с готовыми решениями:

Вывести строку задом наперед
1)Пользователь вводит строку данных программа выводит из нее только цифры. 2)Вывести строку задам...

Вывести строку задом наперед
#include <iostream> using namespace std; int main() { int len; char temp; cin>>len; ...

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

Вывести последовательность слов задом наперед
Задание: Дана строка, группу букв, разделенных пробелами (одним или больше) будем считать словами....

14
1552 / 918 / 193
Регистрация: 26.03.2010
Сообщений: 3,105
19.12.2011, 23:08 2
C++
1
2
for (unsigned short int i = str.size() - 1; i >= 0; --i)
    std::cout << str[i];
1
DU
1500 / 1146 / 165
Регистрация: 05.12.2011
Сообщений: 2,279
19.12.2011, 23:11 3
http://www.cplusplus.com/refer... y/cstring/
ф-ии реверсирования строк в библиотеке нет. есть ф-ия strlen. если ее использовать, то можно сказать что вы использовали указанную библиотеку. определяете с ее помощью длинну строки и реверсируете. можете посмотреть так же на стандартный алгоритм реверсирования:
http://www.cplusplus.com/refer... m/reverse/
BidirectionalIterator - может быть как итератором если вы используете std::string либо это может быть указатель на символ, если используете массив символов. это указатели на первый символ строки и на символ, следующий за последним (в случае массивов символов это будет указатель на нулл символ)
1
2 / 2 / 2
Регистрация: 05.10.2011
Сообщений: 97
19.12.2011, 23:23  [ТС] 4
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <stdio.h>
#include <string.h>
#include <conio.h>
#include <stdlib.h> 
#include <time.h>
 
int main ()
{
     char str[20];
     int n=0,i,j;
     puts("vvedite stroku\n");
     gets(str);
     for (i = strlen(str)-1; i >= 0; i--)
        printf("%c",str[i]);
        return 0;
}
спасибо, решил

Добавлено через 5 минут
А во еще впорос, как сделать так что бы при вводе в трочку точки, компилятор прекращал переворачивать элементы задом наеред?

Добавлено через 3 минуты
(((((
0
go
Эксперт С++
3646 / 1378 / 243
Регистрация: 16.04.2009
Сообщений: 4,526
19.12.2011, 23:26 5
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
#include <string.h>
#include <stdlib.h>
 
int main(int argc, char* argv[])
{
        char buf[BUFSIZ];
 
        std::cin >> buf;
 
        for ( int i = strlen (buf) - 1 ; i >= 0 ; --i )
                std::cout << buf[i];
 
        std::cout<<std::endl;
        std::system ("pause");
        return 0;
}
Добавлено через 35 секунд
Цитата Сообщение от Devil7 Посмотреть сообщение
А во еще впорос, как сделать так что бы при вводе в трочку точки, компилятор прекращал переворачивать элементы задом наеред?
Чего? Как? Пример приведите.
0
2 / 2 / 2
Регистрация: 05.10.2011
Сообщений: 97
19.12.2011, 23:28  [ТС] 6
когда указано, что задается строка до точки, обрезать строку, отбросив все символы после точки .вот вводим строчку fdaf.afaf нужно что бы компилятор перевернул задом наперед те элементы, которые стоят до точки.
0
204 / 205 / 16
Регистрация: 06.08.2011
Сообщений: 600
Записей в блоге: 1
19.12.2011, 23:31 7
1: прервать цикл, если точка и запомнить указатель
2: вывести строку сначала и до позиции точки (включая/невключая).
0
1405 / 647 / 135
Регистрация: 11.08.2011
Сообщений: 2,299
Записей в блоге: 2
19.12.2011, 23:34 8

Не по теме:

красотень


C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
#include <string>
#include <algorithm>
 
int main()
{
    std:: string s; std:: cin >> s;
    std:: string::iterator it=s.begin();
 
    while (it!=s.end() & *it!='.') it++;
 
    std:: reverse (s.begin(),it);
    std:: cout << s << "\n";
    system ("pause");
    return 0;
}
1
go
Эксперт С++
3646 / 1378 / 243
Регистрация: 16.04.2009
Сообщений: 4,526
19.12.2011, 23:35 9
Цитата Сообщение от villu Посмотреть сообщение
1: прервать цикл, если точка и запомнить указатель
2: вывести строку сначала и до позиции точки (включая/невключая).
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
#include <string.h>
#include <stdlib.h>
 
int main(int argc, char* argv[])
{
        char buf[BUFSIZ];
 
        std::cin >> buf;
 
        for ( char *p =  strchr (buf, '.') ; p != buf && p ; --p )
                std::cout << *(p-1);
 
        std::cout<<std::endl;
        std::system ("pause");
        return 0;
}
1
2 / 2 / 2
Регистрация: 05.10.2011
Сообщений: 97
19.12.2011, 23:44  [ТС] 10
Вот таким образом он обрезает у меня после точки, но не переворачивает элементы задом наперед.
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <stdio.h>
#include <string.h>
#include <conio.h>
 
int main ()
{
     char str[20];
     int n=0,i,j;
     puts("vvedite stroku\n");
     gets(str);
     for (i =0; i<strlen(str); i++)
     {if(str[i]=='.')
     return 0;
     else printf("%c",str[i]);}
     for (i = strlen(str)-1; i >= 0; i--)
     printf("%c",str[i]);
        return 0;
}
Добавлено через 2 минуты
хотелось бы свой вариант добить до правильного решения.

Добавлено через 5 минут
(((((
0
go
Эксперт С++
3646 / 1378 / 243
Регистрация: 16.04.2009
Сообщений: 4,526
19.12.2011, 23:45 11
Цитата Сообщение от Devil7 Посмотреть сообщение
{if(str[i]=='.')
* * * * *return 0;
Нашли точку и вышли из программы. И как же она выведется? Сразу запускайте обратный цикл, а потом уж прерывайте программу.
0
1405 / 647 / 135
Регистрация: 11.08.2011
Сообщений: 2,299
Записей в блоге: 2
19.12.2011, 23:46 12
в ифе return 0 на break замените, вывод в последне for сделайте не от длины строки, а от позиции, на которой закончили, А затем выведите от длины строки до i
0
2 / 2 / 2
Регистрация: 05.10.2011
Сообщений: 97
20.12.2011, 00:02  [ТС] 13
.....

Добавлено через 4 минуты
про break понял, а про позицию нет(
0
1405 / 647 / 135
Регистрация: 11.08.2011
Сообщений: 2,299
Записей в блоге: 2
20.12.2011, 00:04 14
в общем поэксперементируйте.
а что я написал: от i до 0 выводите, а потом от длины строки до i (только там там еще немного доработать надо)
0
0 / 0 / 0
Регистрация: 30.01.2018
Сообщений: 29
09.03.2018, 20:34 15
А как после этого полученную строку записать в txt файл?
0
09.03.2018, 20:34
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.03.2018, 20:34
Помогаю со студенческими работами здесь

Вывести буквы в словах строки задом-наперед
я немного переделал под себя прогу которую сделали чтобы было понятно, у меня она потеряла смысл...

Вывести вписанное пользователем слово задом наперед
Добрый день нужно вывести,вписанное пользователем слово задом наперед в C++ помогите как можно...

Вывести предложение, в котором каждое слово будет задом наперед
Здравствуйте,нужна помощь в решении задачи на С++. Вывести предложение, в котором каждое слово...

Вывести строку на экран задом наперёд
Дана строка символов до точки. Вывести её на экран задом наперёд


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru