2016-03-16 3 views
-1

Я очень новичок в C, и у меня возникла проблема с использованием функции strstr. Make дает мне предупреждение, что я не понимаю, кто-нибудь может объяснить?C - сравнение между указателем и integer ('char *' и 'int')

предупреждение: сравнение между указателем и целым числом (char * и int) if (strstr(reference, number_start) == 1) предупреждения генерируется.

Мой код:

#include <stdio.h> 
#include <string.h> 


int main (void) { 
    char reference[]  = "34,37"; 
    char number[]   = "3456789"; 
    char number_start[]  = {number[0], number[1], '\0'}; 

    if (strstr(reference, number_start) == 1) { 
     printf("Yup, iit's workin'\n"); 
    } else { 
     printf("Try again, wookie\n"); 
    } 

    return 0; 
} 
+1

'strstr()' не просто предикат, он возвращает указатель на экземпляр подстроки, если он его нашел. – EOF

+0

Я полагаю, вы хотели использовать функцию 'strcmp', не так ли? –

+0

Нет, я хотел проверить, присутствовали ли первые две цифры числа var в ссылке var – titiyoyo

ответ

2

strstr() возвращает указатель на первую подстроку, если найден, и NULL если не найден.

Заменить

if (strstr(reference, number_start) == 1) { 

с

if (strstr(reference, number_start) != NULL) { 

, чтобы проверить, если number_start в reference.

Смежные вопросы