Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.02.2012, 14:57   #1
spam12
Новичок
Джуниор
 
Регистрация: 09.02.2012
Сообщений: 6
Вопрос Как избавиться от сносок в C++

Помогите пожалуйста переписать код программы на C++ так,чтобы не было этих сносок,ну или как там они называются,int Comp(const void* a, const void* b)
и т.д.,как убрать эти звезды?

Код:
#include <stdio.h>
#include <iostream>
#include <string>

using namespace std;

int Comp(const void* a, const void* b){
    return *(char*)a-*(char*)b;
}
 int main(){
         cout<<"Vvedite massiv simvolov:";
         char text[256];
         scanf ("%s", text);
         char *p=text;
    qsort(text, strlen(text), sizeof(*text), Comp);
    for (; *p; ++p)
          cout<<""<<*p;
          cout << "\n";
        system("PAUSE");
    return 0;
}
spam12 вне форума Ответить с цитированием
Старый 09.02.2012, 15:03   #2
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Указатель это называется (указывает на определенное место в памяти, т.е. содержит адрес).

Если вы пишите на С++, а не Си, то тогда и вместо qsort стоит использовать sort из STL (инклюд algorithm).
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 09.02.2012, 15:10   #3
spam12
Новичок
Джуниор
 
Регистрация: 09.02.2012
Сообщений: 6
По умолчанию

Могли бы вы помочь с правкой этого кода? Я не очень понимаю как исправить.
spam12 вне форума Ответить с цитированием
Старый 09.02.2012, 15:19   #4
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

А задание-то какое? В алфавитном порядке отсортировать символы в строке? В коде перемешаны Си и С++, непонятно требуется ли это по задания или нет.

Особенно непонятен смысл вывода строки по одному символу и для чего нужен вывод "" (пустой строки, т.е. это не несет никакого смысла). Там должен был быть пробел (" ")?
Цитата:
Код:
for (; *p; ++p)
          cout<<""<<*p;
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 09.02.2012, 15:30   #5
spam12
Новичок
Джуниор
 
Регистрация: 09.02.2012
Сообщений: 6
По умолчанию

Может быть и пробел ,мешанины языков С и С++ в задании не было,просто такой код я нашел,и мне надо переписать ее без использования указателей,она действительно сортируем массив символов в алфавитном порядке.
spam12 вне форума Ответить с цитированием
Старый 09.02.2012, 16:32   #6
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Эм...А именно любые символы или только буквы? Если буквы, то например как-то так (спасибо stackoverflow.com за код):
Код:
#include <algorithm>
#include <iostream>
#include <string>
using namespace std;


bool comp(char c1, char c2)
{
    return tolower(c1) < tolower(c2);
}


int main()
{
    string str;
    cout << "Vvedite simvoli: ";
    cin >> str;

    sort(str.begin(), str.end(), comp);
    cout << str << endl;

    return 0;
}
tolower нужен потому что буква в верхнем и нижнем регистре ('A' и 'a') это естественно разные символы.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.

Последний раз редактировалось Alex11223; 09.02.2012 в 16:36.
Alex11223 вне форума Ответить с цитированием
Старый 09.02.2012, 16:46   #7
spam12
Новичок
Джуниор
 
Регистрация: 09.02.2012
Сообщений: 6
По умолчанию

Премного благодарен
spam12 вне форума Ответить с цитированием
Старый 09.02.2012, 19:47   #8
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Однако будьте готовы к тому, что раз вы не проходили указатели (или по какой причине вы не захотели их использовать?), то вероятно от вас ждут не использование алгоритма поиска из стандартной библиотеки, а самостоятельную реализацию (вероятно метод пузырьковой сортировки устроит).
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 09.02.2012, 20:23   #9
Сыроежка
Форумчанин
 
Регистрация: 01.07.2011
Сообщений: 423
По умолчанию

Цитата:
Сообщение от spam12 Посмотреть сообщение
Помогите пожалуйста переписать код программы на C++ так,чтобы не было этих сносок,ну или как там они называются,int Comp(const void* a, const void* b)
и т.д.,как убрать эти звезды?

Код:
#include <stdio.h>
#include <iostream>
#include <string>

using namespace std;

int Comp(const void* a, const void* b){
    return *(char*)a-*(char*)b;
}
 int main(){
         cout<<"Vvedite massiv simvolov:";
         char text[256];
         scanf ("%s", text);
         char *p=text;
    qsort(text, strlen(text), sizeof(*text), Comp);
    for (; *p; ++p)
          cout<<""<<*p;
          cout << "\n";
        system("PAUSE");
    return 0;
}
Не совсем понятно, почему вам так необходимо избавиться от "сносок". Кроме того код вашей программы выглядет как нечто-то среднее между кодом С и кодом С++.

Если писать на С++, то можно сделать следующим образом

Код:
#include <iosttream>
#include <algorithm>
#include <cstdlib>
#include <cstring>
#include <cctype>

using namespace sttd;

int main()
{
   cout << "Vvedite massiv simvolov: ";

   char text[256];

   cin >> text;

   sort( text, text + strlen( text ),
           []( char a, char b ) { return ( toupper( a ) < toupper( b ) ); } );

   cout << text << endl;

   system( "PAUSE" );

   return 0;
}
Со мной можно встретиться на www.clipper.borda.ru
Сыроежка вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
>40 ESTABLISHED, как избавиться? pavel25 Работа с сетью в Delphi 0 29.10.2010 21:39
Как избавиться от ошибки faraon1792 Помощь студентам 0 11.05.2010 20:24
C++. Добавление сносок к диаграмме. svobodys Помощь студентам 6 22.04.2010 11:27
Как избавиться от (Error 91) r0tten Microsoft Office Excel 6 26.01.2010 06:47
Как избавиться от депрессии... :( ? Alex Cones Свободное общение 79 01.12.2009 14:05