Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/8: Рейтинг темы: голосов - 8, средняя оценка - 5.00
0 / 0 / 1
Регистрация: 15.11.2009
Сообщений: 18

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

28.11.2009, 14:40. Показов 1601. Ответов 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;
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
28.11.2009, 14:40
Ответы с готовыми решениями:

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

Переписать код с использованием указателей
помогите пожалуйста, нужно не использовать а все сделать через указатели #include &quot;stdafx.h&quot; #include &quot;math.h&quot; ...

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

7
 Аватар для Sekt
159 / 156 / 47
Регистрация: 29.04.2009
Сообщений: 636
28.11.2009, 15:39
так char *reverse(char *s,char)?
1
 Аватар для firefox1913
28 / 28 / 6
Регистрация: 01.07.2009
Сообщений: 58
28.11.2009, 15:41
вот попробуи так
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;
}
1
0 / 0 / 1
Регистрация: 15.11.2009
Сообщений: 18
28.11.2009, 15:46  [ТС]
Я нет так написал исходная
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 надо переделать не много наверно.
0
Эксперт С++
 Аватар для valeriikozlov
4728 / 2549 / 757
Регистрация: 18.08.2009
Сообщений: 4,568
28.11.2009, 16:09
rkiller, Вам всего лишь нужно строку 7 заменить на:
C++
1
void revers (char *s)
1
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
 Аватар для easybudda
12843 / 7592 / 1766
Регистрация: 25.07.2009
Сообщений: 13,973
28.11.2009, 17:37
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;
}
1
0 / 0 / 1
Регистрация: 15.11.2009
Сообщений: 18
28.11.2009, 21:25  [ТС]
Большое спасибо!!!. Я тут все оформил как мне надо. надеюсь что коменты правильные
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;
}
0
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
 Аватар для easybudda
12843 / 7592 / 1766
Регистрация: 25.07.2009
Сообщений: 13,973
28.11.2009, 22:14
Цитата Сообщение от rkiller Посмотреть сообщение
C++
1
#include <string>
Поменяйте на
C++
1
#include <cstring>
а то не скомпилируется.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
28.11.2009, 22:14
Помогаю со студенческими работами здесь

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

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

Переписать программу с использованием указателей
поменяйте, пожалуйста, из индексов в указатели #include &lt;stdio.h&gt;; int cmp_cresc ( const int* x, const int* y ) // Initiem un...

Переписать код с использованием указателей
Есть код на C,надо заменить на указатели. #include &lt;stdio.h&gt; #include &lt;stdlib.h&gt; #include &lt;locale.h&gt; int prov(int a) { ...

Переписать программу с использованием указателей
Всем привет, написал программу теперь нужно сделать его с помощью указателей. помогите пожалуйста #include&lt;iostream&gt; ...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru