Witam,
chciałbym zadać kilka pytań od początkującego w C.
- Może mi ktoś wyjaśnić jakie działanie ma znak * przy char?
- Na jakiej zasadzie odbywa się porównywanie zdań. Tzn. o co chodzi w:
*pattern=='\0'
Czemu ma ta zmienna być równa?
3. I może mi ktoś powiedzieć jak działa 3 część?
if(*pattern==*string || *pattern=='z') return strMatch(pattern+1,string+1);
else if(*pattern=='*') return strMatch(pattern+1,string) || strMatch(pattern+1, string+1) || strMatch(pattern,string+1);
Co tutaj jest sprawdzane?
Cały program:
#include <stdio.h>
int strMatch(char* pattern, char* string) {
if(*pattern=='\0' && *string=='\0') return 1; //
if(*pattern=='\0' || *string=='\0' && *string!=*pattern) return 0;
if(*pattern==*string || *pattern=='z') return strMatch(pattern+1,string+1);
else if(*pattern=='*') return strMatch(pattern+1,string) || strMatch(pattern+1, string+1) || strMatch(pattern,string+1);
else return 0;
}
main()
{
char pattern[100];
char string[100];
printf("Wzorzec: ");
scanf("%s" , &pattern);
printf("Lancuch: ");
scanf("%s" , &string);
printf("\nWartosc: %d", strMatch(pattern, string));
}