我正在尝试编写一个简单的程序,为用户输入一个全名,例如#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();
}
答案 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个第一个字符,将它们放在一起,然后将结果转换为小写。