0 / 0 / 0
Регистрация: 14.07.2018
Сообщений: 8
1

forbids comparison between pointer and integer

11.12.2019, 23:33. Показов 1428. Ответов 6
Метки нет (Все метки)

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
int algorithm_KMP (proc* mass,char* newpoint)
    {
    int  i=0, j=-1, N, M;
    N = strlen(mass[i].name);
    M = strlen(newpoint);
    printf("%d \n", N);
    printf("%d \n", M);
    int *d =(int*)malloc(M*sizeof(int)); // динамический массив длины М
    /* Вычисление префикс-функции */
    d[0]=-1;
    while(i<M-1)
        {
        while((j>=0) && (newpoint[j]!=newpoint[i]))
            j = d[j];
        i++;
        j++;
        if(newpoint[i]==newpoint[j])
            d[i]=d[j];
        else
            d[i]= j;
        }
    /* поиск */
    for(i=0,j=0;(i<N)&&(j<M); i++,j++)
        while((j>=0)&&(newpoint[j]!=mass[i].name))
            j=d[j];
    free (d);  /* освобождение памяти массива d */
    if (j==M)
        return i-j;
    else /* i==N */
        return -1;
    }
ругается на
C++
1
while((j>=0)&&(newpoint[j]!=mass[i].name))
хотя и то и то - строка
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.12.2019, 23:33
Ответы с готовыми решениями:

C++ forbids comparison between pointer and integer
Такую вот ошибку выбивает в строках 30 и 31. Кто знает - помогите. #include &lt;iostream.h&gt; #include...

14 ISO C++ forbids comparison between pointer and integer
как исправит эту ошибку ? #include &lt;iostream&gt; using namespace std; int main() { const int MAX...

ISO C++ forbids comparison between pointer and integer|
Вот такая ошибка выходит, кто знает в чем дело, помогите пожалуйста! #include &lt;iostream&gt;...

Ошибка ISO C++ forbids comparison between pointer and integer
Привет, ребят. Выскакивает ошибка ISO C++ forbids comparison between pointer and integer при...

6
Мозгоправ
1735 / 1029 / 468
Регистрация: 01.10.2018
Сообщений: 2,138
Записей в блоге: 2
11.12.2019, 23:39 2
Лучший ответ Сообщение было отмечено andrew8841 как решение

Решение

Цитата Сообщение от andrew8841 Посмотреть сообщение
while((j>=0)&&(newpoint[j]!=mass[i].name))
хотя и то и то - строка
newpoint и mass[i].name - строки. Если быть точным, это указатели на символьные данные, размещённые где-то в памяти. А newpoint[j] - это символ, т.е. целочисленное значение. Вы пытаетесь сравнить указатель с целым. На это вам и указывает компилятор.
1
0 / 0 / 0
Регистрация: 14.07.2018
Сообщений: 8
11.12.2019, 23:55  [ТС] 3
изменил на
C++
1
while((j>=0)&&(newpoint!=mass[i].name))
компилируется, строки считает, но не ищет, всегда возвращает -1
может кто видит ошибку?
0
Мозгоправ
1735 / 1029 / 468
Регистрация: 01.10.2018
Сообщений: 2,138
Записей в блоге: 2
12.12.2019, 00:06 4
andrew8841, а сейчас вы сравниваете два указателя. С-строки сравниваются с помощью strcmp().
1
0 / 0 / 0
Регистрация: 14.07.2018
Сообщений: 8
12.12.2019, 00:22  [ТС] 5
Была задумка, организовать поиск частичного совпадения символьного массива с ключевым словом. Пожалуй воспользуюсь прямым поиском.
0
5232 / 2886 / 1208
Регистрация: 07.02.2019
Сообщений: 7,282
12.12.2019, 00:36 6
Цитата Сообщение от andrew8841 Посмотреть сообщение
Была задумка, организовать поиск частичного совпадения символьного массива с ключевым словом
https://en.cppreference.com/w/... yte/strstr
0
0 / 0 / 0
Регистрация: 14.07.2018
Сообщений: 8
12.12.2019, 10:13  [ТС] 7
Спасибо!
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.12.2019, 10:13
Помогаю со студенческими работами здесь

Ошибка при компиляции: iso c++ forbids comparison between pointer and integer -fpermissive
помогите решить проблему. ошибка при компиляции &quot;error iso c++ forbids comparison between pointer...

Comparison between signed and unsigned integer expressions
Много вот таких варнингов: Comparison between signed and unsigned integer expressions FreeBSD 10...

Comparison of a boolean expression with an integer other than 0 or 1
Всем привет. Есть задача - реализовать сравнение чисел в виде a &lt; b &lt; c. Количество &lt;...

Comparison between pointer and integer
Всем ку! Вот такая ошибка у меня вылезла: bcbl.cpp(47): comparison between pointer and integer...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru