Из этой статьи Википедии (http://en.wikipedia.org/wiki/Magnetic_stripe_card#cite_note-14), Я понимаю основной формат данных для водительских прав. Он начинается с данных о местоположении, которые выглядят так:% CODENVER ^
Мне интересно, что если город состоит из двух или более слов, как Нью-Йорк?
Как выглядит вывод данных, и это символ пробела, который разделяет слова, или это что-то еще?
Как мне написать оператор C ++, чтобы вернуть каждое слово в названии города в разных строках?
Это будет зависеть от разделителя. Штаты используют разные форматы для своих данных. 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 ++)