Твой софтовый форум > Тематические форумы > Программирование

Сортировка строк на С++

Дата публикации: 13.12.2008 - 01:09
Pages: 1, 2, 3
nvova
Имеется структура типа "s".
CODE

struct s
{
...
char rab[30];
...
};

Сортирую строки (qsort):
CODE
int compare(const void *a,const void *b)
{   return( strcmp((*(s*)a).rab,(*(s*)b).rab) );  }

Возник вопрос куда впихнуть "(char *)" или что-то вроде этого, чтоб чтоб не возникала ошибка:
cannot convert parameter from char to int.
Пробовал по всякому, но чего-то не выходит sad.gif
yah
Что-то я не въеду вот в это:
CODE

strcmp((*(s*)a).rab
nvova
strcmp
Собственно должна сравнивать 2 строки smile.gif

Делал по найденному примеру:

CODE

int compare( const void *a, const void *B)
{
  return( strcmp((char *)a,(char *)B) );
}

Только тут нет структуры
yah
Если я не ошибаюсь, то прототип у этой функции такой:
CODE

strcmp(const char *, const char *)
nvova
QUOTE(yah @ 14.05.2007 - 22:00)
Если я не ошибаюсь, то прототип у этой функции такой:
*


Подскажи, плиз, тогда где я тупанул?
yah
Стоп, напиши нормально код, а то в первом случае в ретурне у тебя strcmp((*(s*)a).rab, а во втором strcmp((char *)a,(char *)cool.gif
nvova
Первый случай как у меня в программе. Второй случай просто найденный в мануале пример.
yah
я бы сделал так:
CODE

#include <cstring>


struct s
{
char rab[30];
}my,my1;

int compare(const s* struct1, const s* struct2);



int main()
{
int a=compare(&my,&my1);
return 0;
}



int compare(const s* struct1,const s* struct2)
{
int result;
result=strcmp(struct1->rab,struct2->rab);
return result;

}
nvova
Ок. Буду пробовать...
yah
Только не забудь отписаться о результате.
Pages: 1, 2, 3


Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке: Сортировка строк на С++
SoftoRooM © 2004-2024