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

Задача на строки.ПОмогите решить - C++

Восстановить пароль Регистрация
 
HEYALL
0 / 0 / 0
Регистрация: 19.10.2011
Сообщений: 9
31.10.2011, 15:27     Задача на строки.ПОмогите решить #1
Помогите пожалуйста решить задачу
Дана строка.Вывести данную строку задом наперед
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.10.2011, 15:27     Задача на строки.ПОмогите решить
Посмотрите здесь:

Помогите решить алгоритм C++
C++ помогите решить))
C++ Помогите решить ...
C++ помогите решить
помогите решить... C++
помогите решить циклом!!! C++
Помогите решить C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
amor1k
Студент
 Аватар для amor1k
147 / 147 / 24
Регистрация: 18.01.2011
Сообщений: 469
31.10.2011, 15:35     Задача на строки.ПОмогите решить #2
ну тип такого)
C++
1
2
3
4
5
6
7
8
9
10
11
#include <iostream>
using namespace std;
 
int main()
{
    setlocale(LC_ALL,"rus");
    char a[] = "Строка";
    for(int i = sizeof(a) - 1; i >= 0; i--)
        cout << a[i];
    system("pause");    
}
-=ЮрА=-
Заблокирован
Автор FAQ
31.10.2011, 15:40     Задача на строки.ПОмогите решить #3
Цитата Сообщение от HEYALL Посмотреть сообщение
Вывести данную строку задом наперед
- что под этим понимается - поменять порядок слов на обратный?

Если просто символы наоборто пропечатать, дык это просто
C
1
2
char str[] = "Test";
printf("%s",strrev(str));
Для string если не изменяет память есть метод string::reverse().

HEYALL, жду от Вас ответа + указание языка Си или С++?
HEYALL
0 / 0 / 0
Регистрация: 19.10.2011
Сообщений: 9
31.10.2011, 15:43  [ТС]     Задача на строки.ПОмогите решить #4
В Си надо выполнить

Добавлено через 58 секунд
Да надо чтобы строка показывалась задом на перед
Net_Wanderer
235 / 208 / 19
Регистрация: 08.06.2011
Сообщений: 467
31.10.2011, 15:45     Задача на строки.ПОмогите решить #5
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
strrev
в стандарте нет, только в мелкомягких компиляторах
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
Для string если не изменяет память есть метод string::reverse().
нету
Nameless One
Эксперт С++
 Аватар для Nameless One
5759 / 3408 / 255
Регистрация: 08.02.2010
Сообщений: 7,393
31.10.2011, 16:07     Задача на строки.ПОмогите решить #6
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
31
#include <stdio.h>
#include <stdlib.h>
 
void print_reversed(const char*);
 
int main(int argc, char* argv[])
{
    size_t i;
 
    if(argc == 1)
    fprintf(stderr,
        "Usage: %s STRING1 [STRING2...]\n", *argv), exit(EXIT_FAILURE);
 
    for(i = 1; i < argc; ++i)
    {
    printf("%s: ", argv[i]);
    print_reversed(argv[i]);
    putchar('\n');
    }
 
    exit(EXIT_SUCCESS);
}
 
void print_reversed(const char* pch)
{
    if(*pch == '\0')
    return;
 
    print_reversed(pch + 1);
    putchar(*pch);
}
-=ЮрА=-
Заблокирован
Автор FAQ
31.10.2011, 16:20     Задача на строки.ПОмогите решить #7
Цитата Сообщение от HEYALL Посмотреть сообщение
В Си надо выполнить
Добавлено через 58 секунд
Да надо чтобы строка показывалась задом на перед
- вот на Си
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#include <stdio.h> 
#include <string.h>
#include <stdlib.h>
 
int main()
{   
    long i,nWords = 0;
    char chr;
    char str[1024];//èñõîäГ*Г*Гї ñòðîêГ*
    char buf[1024];//ГЎГіГґГґГҐГ°
    char **Words;//ÓêГ*Г§Г*òåëü Г*Г* Г¬Г*Г±Г±ГЁГў ñëîâ ñòðîêè
    char delim[] = " ,.!?;";//ГђГ*çäåëèòåëè ìåæäó ñëîâГ*ìè
    printf("\tEnter input string\n");
    scanf("%[^\n]%c",str,&chr);//Г‚ str ГІГ® Г·ГІГ® ââåëè Гў chr - '\n' îò ââîäГ*
    sprintf(buf,"%s",str);
    char * word = strtok(buf,delim);
    if(!word)
        printf("String not contain words or empty!\n");
    else
    {
        //Ñ÷èòГ*ГҐГ¬ ÷èñëî ñëîâ
        while(word)
        {
            nWords++;
            word = strtok(NULL,delim);
        }
        Words = (char **)malloc(nWords*sizeof(char *));
        word = strtok(str,delim);
        i = 0;
        while(word)
        {
            //Êîïèðóåì ñëîâГ* Гў Words
            Words[i] = (char *)malloc(strlen(word));
            sprintf(Words[i],"%s",word);
            word = strtok(NULL,delim);
            i++;
        }
        printf("\tReverse string\n");
        for(i = nWords - 1;0 <= i; i--)
            printf("%s ",Words[i]);
        printf("\n");
    }
    system("pause");
    return 0;
}
Миниатюры
Задача на строки.ПОмогите решить  
-=ЮрА=-
31.10.2011, 16:24
  #8

Не по теме:

Net_Wanderer, по поводу string::reverse() спорить не буду, в своих программах использую либо char * либо CString для CString::MakeReverse - есть, вот и подумал что string снабжён подобным функционалом...

diagon
Higher
 Аватар для diagon
1921 / 1187 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
31.10.2011, 16:26     Задача на строки.ПОмогите решить #9
Можно так сделать
C++
1
std::reverse( str.begin(), str.end() );
Но это никак не метод string.

А можно так
C++
1
std::cout << std::string( str.rbegin(), str.rend() );
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.10.2011, 16:29     Задача на строки.ПОмогите решить
Еще ссылки по теме:

Помогите решить... C++
Помогите решить в С++ C++
C++ помогите решить
Помогите решить лабу [2] C++
Помогите решить . C++

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

Или воспользуйтесь поиском по форуму:
-=ЮрА=-
Заблокирован
Автор FAQ
31.10.2011, 16:29     Задача на строки.ПОмогите решить #10
diagon, спасибо, буду знать теперь и для string
Yandex
Объявления
31.10.2011, 16:29     Задача на строки.ПОмогите решить
Ответ Создать тему
Опции темы

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