grimoire/c/palindrome.c

32 lines
527 B
C

#include <ctype.h>
int palindrome(const char *str, unsigned len) {
const char *start = str;
const char *end = str + len - 1;
while(start < end) {
if(!isalpha(*start)) {
start += 1;
} else if(!isalpha(*end)) {
end -= 1;
} else if(tolower(*start) == tolower(*end)) {
start += 1;
end -= 1;
} else {
return 0;
}
}
return 1;
}
#include <string.h>
int main(int argc, char **argv) {
if(argc < 2) {
return 2;
}
return !palindrome(argv[1], strlen(argv[1]));
}