【问题标题】:Driver's license magnetic strip data format驾照磁条数据格式
【发布时间】:2015-08-14 07:16:25
【问题描述】:

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

我想知道如果这个城市由两个或多个像纽约市这样的词组成怎么办?

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

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

【问题讨论】:

  • 我猜你必须编写解析字符串的C++代码,或者你可以编写正则表达式。如果您还没有使用互联网进行搜索,那么现在是学习的好时机。你知道用什么关键词吗?
  • 您链接的页面提到了城市名称后面的字段分隔符;大概读到那个或最大字段长度,并像对待任何其他字符一样对待空白字符。

标签: c++ magnetic-cards


【解决方案1】:

这取决于分隔符。各州对其数据使用不同的格式。磁条将有一个分隔符将数据分成不同的部分,然后有另一个分隔符将这些部分分成单独的部分。

举个例子,假设你要解析的数据是:

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++ 字符串解析。我从这里使用了拆分功能: Parse (split) a string in C++ using string delimiter (standard C++)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-10-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-24
    相关资源
    最近更新 更多