ok heres my code, works for the most part i guess
Code:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <conio.h>
int main(int argc, char *argv[]){
char *pattern = new char[255];
char *patcpy = new char[255];
char *patcheck = new char[255];
//wildcard locations
bool wcfront=false;
bool wcback=false;
bool found=true;
strcpy(pattern,"");
strcpy(patcheck,"");
printf("Enter pattern (eg, *hello): ");
gets(pattern);
printf("Enter string to check pattern against: ");
gets(patcheck);
//get wildcard in front
//strcpy(patcpy,pattern);
while(strlen(pattern)){
if(*pattern == '*'){
*pattern++;
wcfront=true;
break;
}
else if(*pattern!=' ' && *pattern!='*'){
break;
}
else{
*pattern++;
}
}
//wildcard in back, strip it off
pattern=strrev(pattern);
while(strlen(pattern)){
if(*pattern=='*'){
*pattern++;
wcback=true;
break;
}
else if(*pattern!=' ' && *pattern!='*'){
break;
}
else {
*pattern++;
}
}
pattern=strrev(pattern);
if(wcfront && wcback){
if(strncmp(pattern,patcheck,strlen(pattern))!=0){
printf("Pattern found in front and back");
}
}
else if(wcfront){
patcheck = strrev(patcheck);
pattern = strrev(pattern);
while(strlen(pattern) && strlen(patcheck)){
if(*patcheck != *pattern){
found=false;
break;
}
*pattern++;
*patcheck++;
}
if(found){
printf("Pattern found in front");
}
}
else if(wcback){
while(strlen(pattern) && strlen(patcheck)){
if((*patcheck != *pattern)){
found=false;
break;
}
*pattern++;
*patcheck++;
}
if(found){
printf("Pattern found in back");
}
}
else {
if(!strcmp(pattern,patcheck)){
printf("They are equal");
}
else {
printf("No match");
}
}
int blah=getch();
return 1;
}
i tested it a bunch, anyone found any errors or things i can do to make it more effecient?