Переместить курсор можно, используя метод
QTextEdit::moveCursor void QTextEdit::moveCursor ( QTextCursor::MoveOperation operation, QTextCursor::MoveMode mode = QTextCursor::MoveAnchor )
Например, на один символ вперёд
textEdit->moveCusros(QTextCursor::NextCharacter)
или назад
textEdit->moveCusros(QTextCursor::PreviousCharacter)
Также можно двигать курсор на слово вперёд/назад, на строку вверх/вниз и т.п. (см.
QTextCursor::MoveOperation enum)
Доставать текст посимвольно можно различными способами. Например, символ находящийся после курсора (включая служебные символы, такие как перевод строки и т.п.) можно получить так
textEdit->document()->characterAt(textEdit->textCursor().position())
А конкретно для чего надо посимвольно?