Формат данных магнитной полосы водительских прав

Из этой статьи Википедии (http://en.wikipedia.org/wiki/Magnetic_stripe_card#cite_note-14), Я понимаю основной формат данных для водительских прав. Он начинается с данных о местоположении, которые выглядят так:% CODENVER ^

Мне интересно, что если город состоит из двух или более слов, как Нью-Йорк?

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

Как мне написать оператор C ++, чтобы вернуть каждое слово в названии города в разных строках?

0

Решение

Это будет зависеть от разделителя. Штаты используют разные форматы для своих данных. Mag полосы будут иметь один разделитель для разделения данных на разные разделы, а затем другой разделитель для разделения разделов на отдельные части.

Например, предположим, что данные, которые вы хотите проанализировать:

New^York^City

Используйте что-то вроде этого, чтобы разделить это:

int main()
{
std::string s = "New^York^City";
std::string delim = "^";

auto start = 0U;
auto end = s.find(delim);
while (end != std::string::npos)
{
std::cout << s.substr(start, end - start) << std::endl;
start = end + delim.length();
end = s.find(delim, start);
}

std::cout << s.substr(start, end);
}

Тогда ваш вывод должен быть:

New
York
City

Поиск больше для разбора строки C ++. Я использовал функцию разделения здесь:
Разобрать (разбить) строку в C ++, используя разделитель строк (стандарт C ++)

0

Другие решения


По вопросам рекламы [email protected]