Форум программистов, компьютерный форум, киберфорум
Наши страницы
C для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
Nooby1
0 / 0 / 1
Регистрация: 15.05.2013
Сообщений: 32
#1

Метод lfind(), как правильно написать метод сравнения?

10.10.2013, 11:17. Просмотров 577. Ответов 2
Метки нет (Все метки)

Всем привет. У меня задача предельно проста. Есть массив
C
1
    char M[100][80];
, В него пихаем всё, что содержится в файле
C
1
2
3
4
5
while(!(feof(f)))
        {
            fgets(M[i],100,f);
            i++;
        }
С этим всё хорошо. Но потом по введённой пользователем строке, надо определить, является ли она подстрокой какой нибудь из строк в M[][], и сделать это с помощью функции lfind();
Я делаю так, где str - введённая пользователем подстрока, size_t num = 5 - всего 5 строк в М. Однако я видимо реализую comp не так, поскольку он всё время печатает null.
C
1
2
3
4
5
6
7
8
9
10
for(int i=0;i<num;i++)
    {
    printf("%s",(char*) lfind(str,M,&num,sizeof(char),comp));
    }
}
int comp (const void* ch, const void* s)
{
    if (strcmp((char*)ch,(char*)s)==0) return 0;
    else return -1;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.10.2013, 11:17
Ответы с готовыми решениями:

Метод левых прямоугольников и метод Симпсона для вычисления интеграла
Составить программу для исчисления интеграла с n количеством интервалов...

Как правильно считать строку для сравнения?
как правильно считать строку для сравнения ?

Обычный метод перевести в метод Ньютона
Здравствуйте, дорогие форумчане. Имеется код программы, считающей корень...

Правильно оформить двумерный динамический массив. Программа "метод Гаусса"
Здравствуйте. Помогите правильно оформить двумерный динамический массив float...

Метод пузырька оформить как отдельную функцию
Дана последовательность чисел A размерности N. Выбрать среди них числа больше...

2
XZentus
201 / 199 / 65
Регистрация: 06.10.2013
Сообщений: 552
10.10.2013, 12:08 #2
счетчик цикла - i, а в lfind передается num, такой индекс, насколько я понимаю, вообще за пределами массива.
0
Nooby1
0 / 0 / 1
Регистрация: 15.05.2013
Сообщений: 32
10.10.2013, 15:25  [ТС] #3
Пробовал через while(!feof(f)), тоже самое - одни нуллы
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.10.2013, 15:25

Как правильно написать?
for (int i=0; i&lt;5; i++) obj.izfila(&quot;file&quot;.i.&quot;.txt&quot;); Как правильно...

Как правильно написать функцию
Доброго времени суток. Помогите разобраться. есть такая функция: void...

Как правильно написать мат. выражение
Имею следующее задание: Ввести целое число x, вещественные числа y и z....


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

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