Andrés Forero@sigh
Los argumentos spec (caracteres especiales), upp (mayusculas) y num (numeros) estan desactivados por defecto (0), cuando se llama la funcion con otro valor se agregan al string.
Sobre el buffer: El abecedario tiene 26 caracteres, la letra 'a' tiene el codigo ascii 97, por lo que hago un bucle que empiece en 0 y termine en 26 y en cada posicion del string le sumo i+97 (donde empieza 'a')