gpt4 book ai didi

c++ - 考虑多种情​​况,在 C++ 中解析英国用户的全名

转载 作者:行者123 更新时间:2023-11-28 06:22:00 25 4
gpt4 key购买 nike

我正在使用第三方 API,它接收名字、中间名和姓氏作为参数。我现在拥有的是用户的全名。我无法更改此结构,因为它是无法更改的大型系统的一部分。

第三方 API 的参数结构无法更改,因此尽管这不是最佳解决方案,但我必须解析全名并将其拆分为三个字段。

名称仅来自英国,这很好。这就是我现在正在做的:

vector<string> fields;
myLibrary::split(' ', name, fields);
string firstName = fields[0];
string middleName = fields.size() == 3 ? fields[1] : "";
string surName = fields.size() == 3 ? fields[2] : fields[1];

但我很确定这是一个糟糕的解决方案,因为有多种情况,例如当一个名字的开头包含文本 Mr. 或结尾包含 Jr. 时。

有没有比这段代码能给我更好保证的代码块?

谢谢!

[更新]

在表单中向用户请求的名称是“Account Holder's Name”,此信息与银行帐户信息相关,因此用户不会输入他的昵称。我添加了 Jr. 或 Sr. 的示例作为我发现的一种可能情况,名称可能存在其他已知问题。有关英国名称属性的一些见解会很有用。

最佳答案

如果您在全名中自由输入,甚至包括不是名字的东西(例如“先生”,从技术上讲,这是一个与姓名分开的头衔),没有万无一失的方法可以将其转换为第一个名字/中间/最后 split 。

您可以想出一个启发式系统来捕捉常见情况,并不断运行您的数据集直到它通过。但是您找不到解决问题的 Elixir 。

我的建议是制定您的启发式方法,尽可能让它们 100% 发挥作用,然后将大型系统中的数据转换为拆分格式。将名称设计为一个整体字段的人完全犯了一个错误。如果那不可能,请让您的雇主知道它会继续导致问题,并且设计错误不是您的。

关于c++ - 考虑多种情​​况,在 C++ 中解析英国用户的全名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29173779/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com