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

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

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

Переписать функцию с использованием указателей - C++

28.11.2009, 14:40. Просмотров 622. Ответов 7
Метки нет (Все метки)

Подскажите пожалуйста как выполнить задание:

Перепишите функцию revers с использованием указателей

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 <conio.h>
#include <string>
using namespace std;
 
void revers (char (*s[])(char))
{
    int i,j;
    char tmp;
    for (i=0, j=strlen(s)-1 ; i<j ; i++,j--)
        tmp=s[i], s[i]=s[j], s[j]=tmp;  
}
int main ()
{
    setlocale (LC_ALL,"");
    const int MAX = 100;
    char *s[MAX];
    char copys[MAX];
    int rez;
    cout << "Введите строку: ";
    cin.getline (s,MAX);
    strcpy (copys,s);
    revers (*s);
    cout << "Реверсивная строка: ";
    cout << s << '\n';
    cout << copys << ((rez = strcmp(copys,s)) < 0 ? '<':(rez == 0 ? '=':'>')) << s;
    cout << "\nРезультат сравнения строк rez = " << rez << '\n';
    getch();
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.11.2009, 14:40     Переписать функцию с использованием указателей
Посмотрите здесь:

Переписать код с использованием указателей на функцию - C++
Помогите вот эту программу переделать на указатели! Спасибо всем) #include &lt;iostream&gt; #include &lt;locale.h&gt; #include &lt;conio.h&gt; ...

Переписать приведенный код с использованием указателей - C++
Есть такой код с функциями. Надо его реализовать через указатели. 3 задания к лабе сделал, а вот ето незнаю как( #include &lt;stdio.h&gt; ...

Подскажите как переписать класс с использованием умных указателей, либо STL - C++
К сожалению, знания об умных указателях и библиотеке STL прошли мимо меня... Сейчас пытаюсь восполнить этот пробел, но уже третий день не...

Написать функцию, находящую корни уравнения методом хорд с использованием указателей - C++
Написать функцию, находящую корни уравнения методом хорд. Аргументы этой функции: указатель на функцию, задающую уравнение; интервал...

Переписать код без указателей - C++
Ввести в память машины одномерный целочисленный массив,используя динамическое выделение памяти,найти количество максимальных...

Переписать программу без использования указателей - C++
Всем привет. Есть программа с указателями , как сделать её без указателей? #include&lt;stdio.h&gt; #include&lt;stdlib.h&gt; ...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Sekt
156 / 155 / 10
Регистрация: 29.04.2009
Сообщений: 637
28.11.2009, 15:39     Переписать функцию с использованием указателей #2
так char *reverse(char *s,char)?
firefox1913
27 / 27 / 2
Регистрация: 01.07.2009
Сообщений: 58
28.11.2009, 15:41     Переписать функцию с использованием указателей #3
вот попробуи так
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
#include <algorithm>
 
using std::cin;
using std::cout;
using std::endl;
 
void reverse(char *Begin, char *End)
{
  while(Begin != --End)
  {
     std::swap(*Begin,*End);
     Begin++;
  }
}
int main()
{
   char str[256]; 
   cin.getline(str,256);
   reverse(str,str+strlen(str)); 
   cout<< str << endl;
return 0;
}
rkiller
0 / 0 / 0
Регистрация: 15.11.2009
Сообщений: 18
28.11.2009, 15:46  [ТС]     Переписать функцию с использованием указателей #4
Я нет так написал исходная
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
#include <iostream>
#include <conio.h>
#include <string>
using namespace std;
 
void revers (char s[])
{
        int i,j;
        char tmp;
        for (i=0, j=strlen(s)-1 ; i<j ; i++,j--)
                tmp=s[i], s[i]=s[j], s[j]=tmp;  
}
int main ()
{
        setlocale (LC_ALL,"");
        const int MAX = 100;
        char s[MAX];
        char copys[MAX];
        int rez;
        cout << "Введите строку: ";
        cin.getline (s,MAX);
        strcpy (copys,s);
        revers (s);
        cout << "Реверсивная строка: ";
        cout << s << '\n';
        cout << copys << ((rez = strcmp(copys,s)) < 0 ? '<':(rez == 0 ? '=':'>')) << s;
        cout << "\nРезультат сравнения строк rez = " << rez << '\n';
        getch();
        return 0;
Мне надо без изменения main ну только если где * подставить. А revers можно править только результат только чтобы такой же был. Я думаю там цикл for надо переделать не много наверно.
valeriikozlov
Эксперт C++
4669 / 2495 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
28.11.2009, 16:09     Переписать функцию с использованием указателей #5
rkiller, Вам всего лишь нужно строку 7 заменить на:
C++
1
void revers (char *s)
easybudda
Эксперт С++
9456 / 5469 / 927
Регистрация: 25.07.2009
Сообщений: 10,495
28.11.2009, 17:37     Переписать функцию с использованием указателей #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
32
33
#include <stdio.h>
 
/* strReverse переворачивает строку без использования strlen и с указателями */
 
char *strReverse(char *str){
    char *h, *t, c;
    
    if ( !str || !(*str) )
        return NULL;
    h = t = str;
    for ( ; *t; t++ )
        ;
    t--;
    
    while ( h < t ){
        c = *h;
        *h = *t;
        *t = c;
        h++;
        t--;
    }
    
    return str;
}
 
int main(){
    char test[] = "abcdef";
    
    printf("Original: %s\n", test);
    printf ("Reversed: %s\n", strReverse(test));
    
    return 0;
}
rkiller
0 / 0 / 0
Регистрация: 15.11.2009
Сообщений: 18
28.11.2009, 21:25  [ТС]     Переписать функцию с использованием указателей #7
Большое спасибо!!!. Я тут все оформил как мне надо. надеюсь что коменты правильные
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
#include <iostream>
#include <string>
using namespace std;
 
 
char *revers(char *str){ //функция реверсирование строки
    char *i, *j, c; //указатели на начало i, конец j строки и переменная c
    i = j = str;                                            
    for ( ; *j; j++ );  //цикл для присвоения строке j последнего символа строки
        j--;
        while ( i < j ) //цикл перебора символов в строке пока i<j
            {
                c = *i;
                *i = *j;
                *j = c;
                i++;
                j--;
                }
    return str; //возврат функцией реверсивной строки
}
 
int main()
{
    setlocale (LC_ALL,""); //для русских букв
    const int MAX = 100; //определение переменной под количество символов в строке
    char s[MAX]; //определение строки
    char copys[MAX]; //определение копии строки
    int rez; //определение переменной для сравнения строк
    cout << "Введите строку: "; //приглашение к вводу
    cin.getline (s,MAX); //считывание строки
    strcpy (copys,s); //копирование строки в копию строки
    revers (s); //реверсирование строки
    cout << "Реверсивная строка: "; //информационное сообщение
    cout << s << '\n';   //вывод реверсивной строки
    cout << copys << ((rez = strcmp(copys,s)) < 0 ? '<':(rez == 0 ? '=':'>')) << s; //вывод сравнения строк
    cout << "\nРезультат сравнения строк rez = " << rez << '\n';
    system ("PAUSE");
    return 0;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.11.2009, 22:14     Переписать функцию с использованием указателей
Еще ссылки по теме:

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

Программа с использованием указателей - C++
пацаны плз помогите написать простую программу с использованием указателей. Буду очень благодарен!

Решения на С с использованием указателей - C++
Поиогите пожалуйсто с решением одной задачки,очень надо.Сама в С ничего не понимаю:sorry: Дан массив координат 30 точек на...

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


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

Или воспользуйтесь поиском по форуму:
easybudda
Эксперт С++
9456 / 5469 / 927
Регистрация: 25.07.2009
Сообщений: 10,495
28.11.2009, 22:14     Переписать функцию с использованием указателей #8
Цитата Сообщение от rkiller Посмотреть сообщение
C++
1
#include <string>
Поменяйте на
C++
1
#include <cstring>
а то не скомпилируется.
Yandex
Объявления
28.11.2009, 22:14     Переписать функцию с использованием указателей
Ответ Создать тему
Опции темы

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