驾驶执照磁条数据格式

时间:2015-05-31 22:00:49

标签: c++ magnetic-cards

从这篇维基百科文章(http://en.wikipedia.org/wiki/Magnetic_stripe_card#cite_note-14)中,我了解了驾驶执照的基本数据格式。它从位置数据开始,如下所示:%CODENVER ^

我想知道如果这个城市包含两个或更多像纽约市这样的词?

数据输出是什么样的,是一个分隔单词的空格字符,还是其他的东西?

如何编写c ++语句以使用不同的字符串返回城市名称中的每个单词?

1 个答案:

答案 0 :(得分: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 ++字符串解析。我从这里使用了split函数: Parse (split) a string in C++ using string delimiter (standard C++)