Project

General

Profile

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

//#define stricmp strncasecmp

int strcmp(char const * a, char const * b);
int stricmp(char const * a, char const * b);
void strcpy(char * dest, char const * src);
void stricpy(char * dest, char const * src);
int strlen(char const * a);
int strcmp(char const * a, char const * b)
{
while (*a || *b)
{
if (*a<*b)
return -1;
else if (*a>*b)
return 1;

++a;
++b;
}
return 0;
}

int stricmp(char const * a, char const * b)
{
char buffer[128];
char buffer2[128];
stricpy(&buffer[0],a);
stricpy(&buffer2[0],b);
return strcmp(&buffer[0],&buffer2[0]);
}

void strcpy(char * dest, char const * src)
{
while (*dest++=*src++);
}

void stricpy(char * dest, char const * src)
{
while (*src)
{
char val = *src++;
if (val>='A' && val<='Z') val+=-'A'+'a';

*dest++ = val;
}
*dest = '\0';
}

int strlen(char const * a)
{
int count;
for (count=0; *a; ++a,++count);
return count;
}

int compare_ext(char const * filename, char const * ext)
{
int dot = 0;
//printf("WTFA:%s %s\n",filenamein, extin);
//printf("WTFB:%s %s\n",filename, ext);

char const * end = strlen(filename) + filename;
while (--end != filename)
{
if (*end == '.')
break;
}
if (0==stricmp(end+1,ext)) return 1;

return 0;
}

//int compare_ext(char const * filename, char const * ext)
//{
// int dot = 0;
// //printf("WTFA:%s %s\n",filenamein, extin);
// //printf("WTFB:%s %s\n",filename, ext);
//
// char const * end = strlen(filename) + filename;
// while (--end != filename)
// {
// if (*end == '.')
// break;
// }
// if (0==stricmp(end+1,ext,1000)) return 1;
//
// return 0;
//}

int main(void)
{
fprintf(stderr,"%d %d %d %d\n",
compare_ext("Elektra Glide.ATR","atr"),
compare_ext("Elektra Glide (1985)(English Software Company).xex","XEX"),
compare_ext("International Karate.atr","atr"),
compare_ext("World Karate Championship.atx","xex"));

return 0;
}

(29-29/44)