【问题标题】:Get first name and last name out of a full name QString从全名QString中获取名字和姓氏
【发布时间】:2015-04-30 17:32:18
【问题描述】:

我有一个 QT 项目,我从用户输入中获取全名作为 QString 变量 fullName。我想通过从fullName 中提取名字(firstName)和姓氏(surname)将它们存储在他们自己的 QString 变量中。

用户输入最终也可能会添加他们的中间名,因此我需要处理所有类型的示例,例如。用户输入:Barry Michael Doyle 必须给firstName 的值Barrysurname 的值Doyle

我不太擅长 QString 操作,因为我最近才开始使用 Qt 库。我会很感激我能得到的所有帮助。

【问题讨论】:

  • 我认为你应该首先定义你可能的输入是什么,例如,名字看起来如何? (所有可能性)。然后“定义”你在那里称呼的名字和姓氏?
  • 我可能的输入是“firstName lastName”。以为我在我的问题中说清楚了。

标签: c++ string qt qstring


【解决方案1】:

Qt 关于 QString 的文档非常详尽,并且有很多关于如何使用它的示例。你可以在这里找到它: http://doc.qt.io/qt-5/qstring.html

一般来说,解析一个可能有错误的输入字符串是很困难的(“BarryDoyle”的输入字符串的预期行为是什么?“Barrydoy le”呢?)

对于使用空格字符拆分字符串的简单情况,您可以查看 QString::split (http://doc.qt.io/qt-5/qstring.html#split)

QString str = "Barry Michael Boyle"
QStringList list_str = str.split(" ");
QString first = list_str.first();
QString last = list_str.back();

【讨论】:

  • 这一切都是为了我正在做的一项任务,我们必须期望用户不会在他们的输入中出错,所以我不太担心......但它必须工作对于多个中间名,我只得到姓氏和名字(昨晚提供的只有一个词)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-01-27
  • 1970-01-01
  • 2016-02-22
  • 2022-12-09
相关资源
最近更新 更多