(setq str "This is a test of a function to divide a long string in a series of shoter string. The new shorter string must be a maximum of 45 characters. The OP has not specified if the new string must be separated on a logical break like SPACE or punctuation mark. Anyway here goes")
; Here without logical separation ;
(setq x 1 len 45 strlst nil strlst2 nil)
(repeat (+ (/ (strlen str) 45) 1)
(setq strlst (cons (substr str x (- len 1)) strlst)