Если, как и scannf, вы готовы предполагать, что пользователи будут предоставлять полностью правильные данные, тогда вы можете сделать следующее:
string astring = ...;
string[] values = astring.Split(new char[] {' '}, StringSplitOptions.RemoveEmptyEntries);
int a = Int32.Parse(values[0]);
int b = Int32.Parse(values[1]);
int c = Int32.Parse(values[2]);
Регулярные выражения будут работать для этого сценария, но они немного излишни.Строка может быть легко маркирована с помощью вышеупомянутого метода Split.