QStringList从String生成用户名

时间:2015-03-01 12:30:53

标签: c++ qt

我正在尝试编写一个简单的程序,为用户输入一个全名,例如#34; Peter Mills"并从名字的第一个字母和姓氏的前4位数生成用户名?

SO输出应该是" pmill"

我怎么做到这一点。我仍然是Qt的新人请有人为我阐明这一点。这就是我现阶段所拥有的

#include <QCoreApplication>
#include <iostream>
#include <QString>
#include<QStringList>
#include <QTextStream>
int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);
    QTextStream cin(stdin);
    QTextStream cout(stdout);

    QString fullName;

    cout << "Enter Your Full Name: " << endl;
    cin >> fullName;

    QStringList username = fullName.split(" ");
    username[0]=username[0][1];

    QString usernameJoin = username.join("");
    cout << "Full name is : " << fullName << endl;
    cout << "Username is : " << usernameJoin << endl;





    return a.exec();
}

1 个答案:

答案 0 :(得分:1)

以下示例基于您的代码,可以执行您想要的操作:

QTextStream cin(stdin);
QTextStream cout(stdout);

QString firstName, lastName;

cout << "Enter Your Full Name: " << endl;
cin >> firstName >> lastName;

QString userName = (firstName.left(1)+lastName.left(4)).toLower();

cout << "Full name is : " << firstName << ' ' << lastName << endl;
cout << "Username is : " << userName << endl;

cin在字边界处停止,因此您必须两次读取名字和姓氏。

然后,您可以使用QString::left(int n)获取QString的最左侧字符,并使用QString::toLower()将结果转换为小写。

这正是我们上面使用的,我们取名字的第一个字符,姓氏的4个第一个字符,将它们放在一起,然后将结果转换为小写。