Cómo encontrar no alfanuméricos en C

estoy intentando separar no alfanumérico y alfanumérico de una cadena en C. este es mi código actual, pero si lo uso, detectará todo alfanumérico solamente, mientras que en no alfanumérico devolverá nulo. Los índices son todos los no alfanuméricos en.

char data[] = "http://www.google.com"; char key[] = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"; char *find; find = strpbrk(data,key); while(find != NULL){ printf("%c",*find); find = strpbrk(find+1,key); } 

La salida será httpwwwgooglecom. Eso es lo que quiero parcialmente. También estoy tratando de encontrar dónde están todos los no alfanuméricos en.

Echa un vistazo a la familia de rutinas C isalpha .

A veces, es más fácil hacer el trabajo usted mismo. Y sí, para el caso específico de A-Za-z0-9, debes usar isalnum () en lugar de strchr ().

 for(c=data;*c;c++) { if (!strchr(key,*c)) { // Do something with non-alpha } else { printf("%c",*c); } }