#include <stdio.h>
#include <regex.h>
int is_only_english_letters(const char *s) {
regex_t regex;
int retrurnval;
// compile the regular expression contained
// in the string pointed to by the pattern
retrurnval = regcomp(®ex, "^[a-zA-Z]+$", REG_EXTENDED);
if (retrurnval) {
char errbuf[128];
regerror(retrurnval, ®ex, errbuf, sizeof(errbuf));
fprintf(stderr, "Regex compilation error: %s\n", errbuf);
return 0;
}
// compares the null-terminated string specified by string with the
// compiled regular expression regex initialized
// by a previous call to regcomp()
retrurnval = regexec(®ex, s, 0, NULL, 0);
regfree(®ex);
if (retrurnval == 0) {
return 1;
} else if (retrurnval == REG_NOMATCH) {
return 0;
} else {
char errbuf[128];
regerror(retrurnval, ®ex, errbuf, sizeof(errbuf));
fprintf(stderr, "Regex execution error: %s\n", errbuf);
return 0;
}
}
int main() {
const char *s1 = "CProgramming";
printf("%d\n", is_only_english_letters(s1));
const char *s2 = "CProgrammingパイソン";
printf("%d\n", is_only_english_letters(s2));
const char *s3 = "";
printf("%d\n", is_only_english_letters(s3));
const char *s4 = "C11Programing";
printf("%d\n", is_only_english_letters(s4));
return 0;
}
/*
run:
1
0
0
0
*/