Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Ада и другие языки _ Сравнение символов незавимо от регистра

Автор: 18192123 18.02.2009 20:20

Сравниваю два символа типа char с помощью функции stricmp..
Компилятор выдаёт ошибку: Cannot convert 'int' to 'const char *'
Скажите пожалуйста, в чём причина??


struct str
{
char symbol;
unsigned int count;
double probability;
};
typedef str STR;
STR Alph[n];
//-----------------------------------

char FindSymbol(char c,char m)
{
for(int i=0;i<m;i++)

if(!stricmp(Alph[i].symbol, c)) return i; //здесь ошибку выдаёт..
return -1;
}


Автор: volvo 18.02.2009 21:02

Цитата
в чём причина??
В том, что компилятор не может привести тип int к типу char *... Если тебе надо всегда сравнивать только один символ - можешь попробовать так:

char FindSymbol(char c,char m)
{
for(int i=0;i<m;i++)
if(!strnicmp((char *)(&Alph[i].symbol), (char *)(&c), 1)) return i;
return -1;
}
, вроде должно сработать...

Автор: 18192123 18.02.2009 21:16

Спасибо!! Получилось smile.gif