Как я делаю SSCANF в C # - PullRequest
       19

Как я делаю SSCANF в C #

4 голосов
/ 05 августа 2010

как мне это сделать в C #?

int a,b,c;
sscanf(astring,"%d %d %d",&a,&b,&c);

минимальный код и зависимости предпочтительнее, есть ли какие-то встроенные элементы регулярных выражений?

Я использую c # 4.0

Ответы [ 3 ]

5 голосов
/ 05 августа 2010

Если, как и 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.

0 голосов
/ 14 февраля 2012

Кроме того, довольно просто написать свою собственную версию sscanf() на C #.Синтаксис делает его достаточно простым для реализации.

Я реализовал свою собственную версию и разместил в Интернете.Вы можете просмотреть его здесь .

0 голосов
/ 05 августа 2010

Самое простое, что я могу придумать, это:

var fields = astring.Split(null, StringSplitOptions.RemoveEmptyEntries);
a = int.Parse(fields[0]);
b = int.Parse(fields[1]);
c = int.Parse(fields[2]);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...