Если эта тема еще не полностью перечислена, могу ли я добавить другую? Удобная функция MATLAB на основе Perl:
email = 'johndoe@hotmail.com';
parts = regexp(email,'@', 'split');
parts - это двухэлементный массив ячеек, аналогичный реализации текстового сканирования mtrw. Может быть, это излишне, но регулярное выражение гораздо полезнее, если разбить строку по нескольким символам-разделителям или выполнить поиск по шаблону. Единственным недостатком является использование регулярных выражений, которые я до сих пор не освоил после 15 лет кодирования.